HDU2012
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,n,a,i,k,flag,b;
while(scanf("%d%d",&x,&y)!=EOF)
{
if(x==0&&y==0)
{
break;
}
flag=1;
for(k=x;k<=y;k++)
{
a=k*k+k+41;
b=(int)sqrt(a);
for(i=2;i<=b;i++)
{
if(a%i==0)
{
flag=0;
break;
}
}
if(flag==0) break;
}
if(flag==0)
printf("Sorry\n");
else
printf("OK\n");
}
return 0;
}
素数判定的一个优化是只要算到sqrt(a)
算所有因子之和(包括一)
#include<stdio.h>
int main()
{
int n,i,s;
while(scanf("%d",&n)!=EOF)
{
s=1;
for(i=2;i*i<n;i++)
{
if(n%i==0)
s+=i;
s+=n/i;
}
if(i*i==n)
s+=i;//这个判断可以直接改为上面改成的for(i=2;i*i<=n;i++)
if(s==n)
printf("=\n");
else if(s>n)
printf(">\n");
else
printf("<\n");
}
}
类似 优化也是根号x