Description
Input
Output
Sample Input
2 3 17 41 20 666 12 53 0
Sample Output
1 1 2 3 0 0 1 2
大意:连续素数共有多少种,用了DFS的思想,看来还是不会DFS OTZ去看了题解
#include<cstdio> #include<cstring> #include<cmath> using namespace std; int pri[2000] = {2}; int count = 0; void prime() { int temp = 1; int i,j; for( i = 3; i <= 10000;i++){ for( j = 2; j <= i/2;j++) if(i%j == 0) break; if(j > i/2) pri[temp++] = i; } } int num(int n,int i) { if(n-pri[i] == 0) count++; else if( n - pri[i] > 0) num(n-pri[i],i-1); return 0; } int main() { int n,k; prime(); while(~scanf("%d",&n)&&n){ count = 0; for(int i = 0; i < 2000;i++){ if(pri[i] == n) { count++; k = i -1; break; } else if( n < pri[i]){ k = i -1; break; } } for(int i = k ; i >= 0;i--) num(n,i); printf("%d\n",count); } return 0; }
POJ2739——DFS——Sum of Consecutive Prime Numbers
原文:http://www.cnblogs.com/zero-begin/p/4372634.html