| ||||||||||
| 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 | |||||||||
又wa了n次,那位高手可以提示一下?万分感谢!!!!#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