?? 1333.cpp
字號:
#include<stdio.h>
#include<math.h>
int prime[10001];
int isprime(int n){
int t=sqrt(1.0*n);
for(int i=2;i<=t;i++)
if(n%i==0) return 0;
return 1;
}
int rush(int n){
int sum=0;
while(n){
sum+=n%10;
n/=10;
}
return sum;
}
int smith(int n){
int sum=0,j=0;
int temp=n;
while(true){
if(n%prime[j]==0){
n/=prime[j];
sum+=rush(prime[j]);
if(isprime(n)){
sum+=rush(n);
break;
}
}
else
j++;
}
return sum==rush(temp);
}
int main()
{
int i,k,n;
for(k=0,i=2;k<10001;i++)
if(isprime(i))
prime[k++]=i;
while(scanf("%d",&n)!=EOF&&n){
for(i=n+1;;i++){
if(isprime(i))
continue;
if(smith(i)){
printf("%d\n",i);
break;
}
}
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -