Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
数据都通过,是哪错了?哪位大虾帮忙看看,感激不尽#include <iostream> #include <math.h> using namespace std; int main() { int n,i,j,k; while(scanf("%d",&n) != EOF) { if(n == 0) { break; } int a[10000],x = 0; bool b[10000]; //初始化 for(i = 2; i <= n; i++) { b[i] = true; } //去除偶数 for(i = 3; i <= n; i++) { if( i % 2 == 0) { b[i] = false; } } //去除 倍数 for(i = 3; i <= sqrt(n * 1.0); i += 2) { if(b[i]) { for(j = i + i; j < n; j += i) { b[j] = false; } } } //赋值 for(i = 2,j = 0; i <= n; i++) { if(b[i]) { a[j] = i; j++; } } //遍历 for(i = 0; i <= j; i++) { int sum = a[i]; for(k = i + 1; k <= j; k++) { if(sum == n) { x++; break; } if(sum > n) { break; } sum += a[k]; } } //输出 printf("%d\n",x); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator