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 }

 

转载于:https://www.cnblogs.com/linspirit/articles/3872091.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值