代码没问题,但是检测的时候运行超时(时间限制为2s)
需大神解法
import java.util.Arrays;
import java.util.Scanner;
public class c {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
long m=1,sum=0;
int aa[]=new int[n];
for (int i = 0; i < aa.length; i++) {
aa[i] = input.nextInt();
}
for (int i = 0; i < aa.length; i++) {
m=2;
sum=0;
while(m<=aa[i]) {
if(f(m))sum+=m;
else {
if(m%2==0)sum+=2;
else if(m%3==0)sum+=3;
else if(m%5==0)sum+=5;
else if(m%7==0)sum+=7;
}
m++;
}
System.out.println(sum);
}
}
public static boolean f(long n) {
for(int i=2;i*i<=n;i++) {
if(n%i==0) return false;
}
return true;
}
}