您的位置:首页 > 其它

POJ 1142 Smith Numbers

2014-04-03 16:16 337 查看
题目出处:http://acm.pku.edu.cn/JudgeOnline/problem?id=1142
版权声明:版权归作者WeiSteven所有,转载请注明!
该程序时间为47ms




代码 1 #include <stdio.h>
2 #include <math.h>
3 bool isPrimer(long d)
4 {
5 if(d==2||d==3||d==5||d==7||d==11||d==13)
6 {
7 return true;
8 }
9 for(int i=2;i<=sqrt((double)d);i++)
10 {
11 if(d%i==0)
12 {
13 return false;
14 }
15 }
16 return true;
17 }
18 int getDataSum(long d)
19 {
20 int re=0;
21 while(d>0)
22 {
23 re+=d%10;
24 d/=10;
25 }
26 return re;
27 }
28 int getPrimerSum(long d)
29 {
30 int re=0;
31 for(int i=2;d>1&&i<=sqrt((double)d);)
32 {
33 if(d%i==0)
34 {
35 re+=getDataSum(i);
36 d/=i;
37 }
38 else
39 {
40 i++;
41 }
42 }
43 return re+getDataSum(d);
44 }
45
46 int main()
47 {
48 freopen("in.txt","r",stdin);
49 long data;
50 while(scanf("%ld",&data)!=EOF&&data!=0)
51 {
52 while(++data)
53 {
54 if(!isPrimer(data)&&getDataSum(data)==getPrimerSum(data))
55 {
56 printf("%ld\n",data);
57 break;
58 }
59 }
60 }
61 return 1;
62 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: