import java.util.Scanner;
public class Main {
static int[] a=new int[1230];
static int[] b=new int[10001];//index_a
public static void main(String[] args) {
int index=0;
for (int i = 2; i <=10000; i++) {
if(isPrime_3(i)) {
a[index++]=i;
b[i]=index;
}
}
Scanner sc=new Scanner(System.in);
while(true) {
int num=sc.nextInt();
if(num==0)break;
int count=0;
for (int i = 0; i<a.length ; i++) {
int sum=0;
for (int j = i; j<a.length ; j++) {
sum+=a[j];
if(sum==num) {
count++;
break;
}else if(sum>num) {
break;
}
}
}
System.out.println(count);
}
}
private static boolean isPrime_3( int num ){
//两个较小数另外处理
if(num ==2|| num==3 )
return true ;
//不在6的倍数两侧的一定不是质数
if(num %6!= 1&&num %6!= 5)
return false ;
int tmp =(int)Math.sqrt(num);
//在6的倍数两侧的也可能不是质数
for(int i= 5;i <=tmp; i+=6 )
if(num %i== 0||num %(i+ 2)==0 )
return false ;
//排除所有,剩余的是质数
return true;
}
}
01-21
12-30
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交