第四题 哥德巴赫分解
代码:
public class Main {
static int ans=0;
static int n=0;
static int[] arr=new int[10005];
static boolean[] arr2=new boolean[10005];
public static void main(String[] args) {
find();
for(int i=2;i<=10000;i=i+2)
{
for(int j=0;j<n;j++)
{
boolean flag=false;
for(int k=j+1;k<n;k++)
{
if(arr[j]+arr[k]==i)
{
ans=Math.max(ans,arr[j]);
flag=true;
}
}
if(flag)break;
}
}
System.out.println(ans);
}
private static void find() {
for(int i=2;i<=10000;i++)
{
if(!arr2[i])
{
int j=2;
while(i*j<=10000) {
arr2[i*j]=true;
j++;
}
}
}
for(int i=2;i<=10000;i++)
if(!arr2[i]) arr[n++]=i;
}
public static boolean isprime(int n) {
if(n == 1 || n == 0) return false;
for (int j = 2; j <= Math.sqrt(n); j++)
{
if (n % j == 0)
{
return false;
}
}
return true;
}
}
?
|