求分解后x的最小公倍数

简介:
import java.math.BigInteger;
import java.util.*;

public class Hello
{
	 static final int N = 1005;
	 static boolean prime[] = new boolean[N];
	 static int p[] = new int[N];
	 static BigInteger dp[][] = new BigInteger[N][N];
	 static BigInteger ans[] = new BigInteger[N];
	 static int k;
	 
	 static void isprime()
	 {
		  k = 1;
		  int i,j;
		  Arrays.fill(prime,true);
		  for(i=2;i<N;i++)
		  {
			   if(prime[i])
			   {
				    p[k++] = i;
				    for(j=i+i;j<N;j+=i)
				    {
				    	 prime[j] = false;
				    }
			   }
		  }
	 }
	 
	 static BigInteger max(BigInteger a,BigInteger b)
	 {
		  if(a.compareTo(b) == 1) return a;
		  else return b;
	 }
	 
	 static void Work()
	 {
		  for(int i=0;i<N;i++)
		      for(int j=0;j<k;j++)
		    	  dp[i][j] = BigInteger.ONE;
		  for(int i=1;i<k;i++)
			  dp[2][i] = BigInteger.valueOf(2);
		  for(int i=3;i<N;i++)
		  {
			   for(int j=1;j<k;j++)
			   {
				    dp[i][j] = dp[i][j-1];
				    int tmp = p[j];
				    while(i >= tmp)
				    {
				    	 dp[i][j] = max(dp[i][j],dp[i-tmp][j-1].multiply(BigInteger.valueOf(tmp)));
				    	 tmp *= p[j];
				    }
			   }
		  }
		  ans[0] = ans[1] = BigInteger.ONE;
          ans[2] = BigInteger.valueOf(2);
		  for(int i=3;i<N;i++)
		  {
			   ans[i] = BigInteger.ZERO;
			   for(int j=1;j<k;j++)
				    ans[i] = max(ans[i],dp[i][j]);
		  }
	 }
	 
	 public static void main(String[] args)
	 {
		  isprime();
		  Work();
		  Scanner cin = new Scanner(System.in);
		  while(cin.hasNext())
		  {
			   int n = cin.nextInt();
			   System.out.println(ans[n]);
		  }
	 }
}

目录
相关文章
|
5月前
|
移动开发 Android开发 开发者
《穿透技术迷雾:解码DCloud跨端开发的底层逻辑》
mui 是 DCloud 推出的基于 HTML5+ 标准的开发框架,专注于提供原生体验。它无需依赖第三方框架,通过调用原生控件和 5+ 动画,实现流畅的交互效果。HTML5+ 技术扩展了传统 HTML5 的能力,新增的 plus 对象可调用设备硬件功能(如摄像头、定位等),大幅提升应用性能与功能边界。mui 与 HTML5+ 紧密结合,支持一次开发多端部署,广泛应用于电商、教育等领域,助力开发者高效构建跨平台应用,带来接近原生的用户体验。
109 18
|
9月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
596 3
|
存储 关系型数据库 MySQL
MySQL 分区表
MySQL 分区表
160 4
LogAdvice
`LogAdvice` 类是用于日志记录的 AOP(面向切面编程)组件。它定义了在带有 `@Log` 注解的方法执行前后进行操作的切点。在方法调用前,它记录请求开始时间、描述、URL、参数和 headers。方法成功返回后,记录请求的执行时间和响应。类还包含一些辅助方法,如判断是否为 Feign 请求或控制器请求,并获取请求的相关信息。
|
缓存 弹性计算 负载均衡
11. 分布式系统接口,如何避免表单的重复提交?
11. 分布式系统接口,如何避免表单的重复提交?
328 0
个人网站发布
基于Linux服务器,发布个人网站操作步骤。
个人网站发布
|
前端开发 开发工具 git
React 16 Jest手动模拟(Manual Mocks)
转载地址 React 16 Jest手动模拟(Manual Mocks) 项目初始化 git clone https://github.com/durban89/webpack4-react16-reactrouter-demo.git  cd webpack4-react16-reactrouter-demo git fetch origin git checkout v_1.0.27 npm install   手动模拟(Manual Mocks) 手动模拟主要功能是用于存储模拟的数据。
1365 0

热门文章

最新文章