A1035. 素数之和
问题描述
给定正整数N,求[1,N]之间的所有素数之和.如果没有素数,则之和为0. 1<=N<=1000
输入格式
输入有多行,每行有一个正整数n(1<=n<=1000),如果输入为0,则退出
输出格式
对应每行输入的整数,输出[1,N]之间的所有素数之和.每个结果占一行.
样例输入
1
2
4
0
2
4
0
样例输出
0
2
5
2
5
package www.tsinsen.com; import java.util.ArrayList; import java.util.Scanner; public class A1035 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int sum=fun(n); ArrayList<Integer> list=new ArrayList<Integer>(); list.add(sum); while(n!=0) { n=scan.nextInt(); if(n==0) {break;} list.add(fun(n)); } for(int i=0;i<list.size();i++) { System.out.println(list.get(i)); } } public static int fun(int n) { int sum=0; for(int i=1;i<=n;i++) { if(judge(i)) { sum+=i; } } return sum; } public static boolean judge(int n) { if(n==1) { return false; } if(n==2) { return true; } for(int i=2;i<=Math.sqrt(n);i++) { if(n%i==0) { return false; } } return true; } }