ZOJ 1133 Smith Numbers(素数)

来源:互联网 发布:淘宝小卖家 编辑:程序博客网 时间:2024/05/29 15:43

竟然把条件大于n看成了大于等于n,WA无数 

#include <iostream>#include <cmath>#include <cstdio>#include <vector>using namespace std;const int maxn=12000;bool isP[maxn];vector<int> p;int n;void init(){for(int i=2;i<maxn;++i){isP[i]=1;}for(int i=0;i<maxn;++i){if(isP[i]){p.push_back(i);for(int j=i+i;j<maxn;j+=i){isP[j]=0;}}}}int main(){init();while(scanf("%d",&n)&&n){for(n+=1;;n++){int sumN=0,t=n,sumPF=0;while(t){sumN+=t%10;t/=10;}t=n;for(int i=0;p[i]*p[i]<=t;++i){while(t%p[i]==0){int tt=p[i],tsum=0;while(tt){tsum+=tt%10;tt/=10;}t/=p[i];sumPF+=tsum;}}if(t>1&&sumPF){int tsum=0;while(t){tsum+=t%10;t/=10;}sumPF+=tsum;}if(sumN==sumPF)break;}printf("%d\n",n);}return 0;}