zoj 1133 || poj 1142 Smith Numbers

 水题。

 

但是纠结了好长时间。

 

题意没理解完全。。。悲剧啊悲剧。zoj poj AC

 

冰心还是比我先做出来。。。哎。最近刷水题能力越来越弱了。。。

 

#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int a[20005],b[1000],prime[20005]; int i,j,p=0,q=0,k,sum=0,temp; int n,num; a[0] = 0; a[1] = 0; for(i=2;i<=20000;i++) a[i]= i; for(i=2;i<=10000;i++) if(a[i]) for(j=2;j*i<20000;j++) a[j*i] = 0; j = 0; for(i=2; i<=20000; i++) { if(a[i]) { prime[j] = a[i]; j++; } } while( scanf("%ld",&n)!=EOF && n) { for(num = n+1; ; num++) { sum = 0; n = num; while(n!=0) { sum += n%10; n /= 10; } i=0; q = 0;temp = 0; n = num; while(n!=1) { if( prime[i] > sqrt(n) ) break; while( n%prime[i] == 0 ) { b[q] = prime[i]; n = n/prime[i]; q++; } i++; } if( n!= 1) { b[q] = n; q++; } if( b[0] == num ) continue; for(i=0; i<q; i++) { while( b[i] >= 10 ) { temp += b[i]%10; b[i] /= 10; } temp += b[i]; } if( temp == sum ) break; } printf("%ld/n",num); } system("pause"); return 0; }

 

 

 

 

你可能感兴趣的:(System,Numbers)