| ||||||||||
| 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 | |||||||||
AC了,呵呵In Reply To:HELP!!!过了的帮忙看看,为什么WA啊! Posted by:Caiboss at 2007-07-09 21:54:48 > #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