Prime Bases

HDU2964: Prime Bases

简单题,直接计算进制就好了。

 1 #include <iostream>
 2 #include <string>
 3 #include <cstring>
 4 
 5 using namespace std;
 6 
 7 int prime[]={2,3,5,7,11,13,17,19,23,29,31,37,39,41,43,47,51,53,57,59};
 8 int last, base[20];
 9 
10 void DecPrime(int num){
11     memset(base, 0, sizeof(base));
12 
13     int n = num, i=0;
14     while(n>=1){
15         base[i] = n % prime[i];
16         n /= prime[i++];
17     }
18     last = i-1;
19 }
20 
21 void OutPut(int num){
22     cout << num << " = ";
23     for(int i=0; i<20; i++){
24         if(base[i]){
25             cout << base[i];
26             for(int j=0; j<i; j++){
27                 cout << "*" <<prime[j];
28             }
29             if(i==last)
30                 cout << endl;
31             else
32                 cout <<" + ";
33         }
34 
35     }
36 }
37 
38 int main(int argc, char *argv[])
39 {
40     int n;
41 
42     while(cin >>n && n){
43 
44         DecPrime(n);
45         OutPut(n);
46 
47     }
48 
49     return 0;
50 }

 

posted @ 2014-07-27 22:36  算法研究  阅读(108)  评论(0)    收藏  举报