| ||||||||||
| 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