| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:那到底错在那里?????In Reply To:又wa了n次,那位高手可以提示一下?万分感谢!!!! Posted by:Loger at 2004-04-16 14:01:07 > #include <stdio.h>
> int check(int max,unsigned long num_tmp)//筛法
> {
> int maxx=0;
> unsigned int i,sqr,j;
> unsigned long num=num_tmp;
> bool flag[65535];
> for(sqr=1;sqr*sqr<=num;sqr++);
> sqr--;
> for(i=0;i<=sqr;i++) flag[i]=false;
> for(i=2;i<=sqr&&i<=num;i++)
> {
> j=i;
> if(flag[i]==false&&num%i==0)
> {
> j=i;
> while(j!=0) maxx+=j%10,j/=10;
> if(maxx>max) return 0;
> num/=i;
> j=i+i;
> i--;
> }
> while(j<=sqr&&j<=num) flag[j]=true,j+=i;
> }
> if(num==num_tmp) return 0;//这句话有没有都是wa,想问一下判断的数为素数时到底算不算?
> if(num!=1)
> {
> while(num!=0) maxx+=num%10,num/=10;
> }
> if(maxx==max) return 1;
> else return 0;
> }
> void main()
> {
> unsigned long number,tmp,i;
> int top;
> while(scanf("%ld",&number)!=-1&&number!=0)
> {
> if(number<0) continue;
> for(i=number+1;;i++)
> {
> top=0;
> tmp=i;
> while(tmp!=0) top+=tmp%10,tmp/=10;
> if(check(top,i)==1) break;
> }
> printf("%ld\n",i);
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator