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 |
HELP!!!过了的帮忙看看,为什么WA啊!#include <iostream> #include <math.h> using namespace std; int Prime[17000]; int ans[32800]; int main() { int k = 0; Prime[k++] = 2; for(int i = 3;i<=33000; i+=2) { int j,M = (int)sqrt(i)+1; for(j = 2; j< M; ++j) if(i%j == 0) break; if(j == M) Prime[k++] = i; } char p[81]; while(cin.getline(p,80)) { if(p[0] == '0') break; int L = strlen(p); long long s = 0; long long sum = 1; for(int i = 0; i< L; ++i) { if(p[i] == ' ') { sum *= s; s = 0; continue; } s = s*10+p[i]-'0'; } sum --; int j = 0; for(int i = 0; i< 32800; ++i) ans[i] = 0; while(sum>1) { while(sum%Prime[j]) j++; ans[Prime[j]]++; sum/=Prime[j]; } for(int i = 32800; i>=0; --i) if(ans[i]) cout << i << ' ' << ans[i] << ' '; cout << endl; } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator