forked from Dashark/hello-world
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhomework1.cpp
More file actions
75 lines (67 loc) · 1.99 KB
/
Copy pathhomework1.cpp
File metadata and controls
75 lines (67 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//超级素数:它本身,各位数字的和,各位数字的平方和,都是素数。
#include <stdio.h>
int isPrime(int b){
int n,cont=0;
if(b==2){
return 1;
}
for(n=2;n<b;n++){
if(b%n==0)cont++;
}
if(cont!=0){
return 0;
}else return 1;
}
int sPrime(int b){
if (b<1000 && b>=100){
//求各位数字和
//printf("%d的百位数为%d,十位数为%d,个位数为%d,各位数字的和为%d\n",b,b/100,(b/10)%10,(b%100)%10,(b/100)+((b/10)%10)+((b%100)%10));
if(isPrime((b/100)+((b/10)%10)+((b%100)%10))==1){
return 1;
}else return 0;
}
else if (b<10000 && b>=1000){
//printf("%d的千位数为%d,百位数为%d,十位数为%d,个位数为%d,各位数字的和为%d\n",b,b/1000,(b/100)%10,((b/10)%100)%10,((b%1000)%100)%10,(b/1000)+((b/100)%10)+(((b/10)%100)%10)+(((b%1000)%100)%10));
if(isPrime((b/1000)+((b/100)%10)+(((b/10)%100)%10)+(((b%1000)%100)%10))==1){
return 1;
} else return 0;
}
}
int ssPrime(int b){
if (b<1000 && b>=100){
//987
//求各位数字平方和
//printf("%d的百位数为%d,十位数为%d,个位数为%d,各位数字的平方和为%d\n",b,b/100,(b/10)%10,(b%100)%10,(b/100)*(b/100)+((b/10)%10)*((b/10)%10)+((b%100)%10)*((b%100)%10));
if(isPrime((b/100)*(b/100)+((b/10)%10)*((b/10)%10)+((b%100)%10)*((b%100)%10))==1){
return 1;
}else return 0;
}
else if (b<10000 && b>=1000){
//1765
//printf("%d的千位数为%d,百位数为%d,十位数为%d,个位数为%d,各位数字的平方和为%d\n",b,b/1000,(b/100)%10,((b/10)%100)%10,((b%1000)%100)%10,(b/1000)*(b/1000)+((b/100)%10)*((b/100)%10)+(((b/10)%100)%10)*(((b/10)%100)%10)+(((b%1000)%100)%10)*(((b%1000)%100)%10));
if(isPrime((b/1000)*(b/1000)+((b/100)%10)*((b/100)%10)+(((b/10)%100)%10)*(((b/10)%100)%10)+(((b%1000)%100)%10)*(((b%1000)%100)%10))==1){
return 1;
} else return 0;
}
}
int superPrime(int b){
if(isPrime(b)==1){
if(sPrime(b)==1){
if(ssPrime(b)==1){
printf("%d ",b);
return 1;
}else return 0;
}
}
}
int main(){
int b=100,sum=0,k=0;
for(b=100;b<10000;b++){
if(superPrime(b)==1){
sum+=b;
k++;
}
}
printf("\n%f",(float)sum/k);
return 0;
}