可以实现功能,但代码有待优化精简,如果你有更好的建议,欢迎评论交流!
import java.util.Scanner;
public class PrimeSum {
//求2~n的素数和
public static void main(String[] args) {
int i,j,sum=2; //i,j控制循环
boolean k; //判断i是否为素数的变量
System.out.println("-----求2~n的素数和------\n------请输入n的值------");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
//外循环从2遍历到n,内循环判断i是否为素数
for(i=2;i<=n;i++){
k = true;
for(j=2;j<=Math.sqrt(n);j++) {
if (i % j == 0) k = false;
}
if(k) sum += i;
}
System.out.println("2~"+n+"的素数之和为:"+sum);
}
}
测试运行结果:
-----求2~n的素数和------
------请输入n的值------
[输入并enter] 5
2~5的素数之和为:10