大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这是我以前写过的判断质数的程序,希望对你有帮助。
创新互联是专业的交口网站建设公司,交口接单;提供网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行交口网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
#includestdio.h
int
prime(int
a)
{
int
i;
for(i=2;i=a/2;i++)
{
if(a%i==0)
break;
}
if(ia/2)
return
1;
else
return
0;
}
int
main(void)
{
int
x;
printf("请输入一个整数:");
scanf("%d",x);
if(prime(x))
printf("%d为素数\n",x);
else
printf("%d不是素数\n",x);
}
主要是加了break
#includestdio.h
int main()
{ int i,j,n,m;
scanf("%d",n);
for(m=0;n;n/=10)m=m*10+n%10;
if(m1)printf("2 ");
for(i=3; i=m; i+=2)
{ for(j=3;j*j=i;j+=2)
if(i%j==0)j=i;
if(j*ji)printf("%d ",i);
}
return 0;
}
红框里的代码,加上那个i++的for循环,其逻辑是:
从2开始,遍历所有小于n的整数,
只要存在一个整数可以被n整除(即余数为0),则可判断n为合数.
若从2到n-1范围内,不存在可整除n的数,则判断n为质数.
还有 for(int .......)这种定义变量的写法,要C99才支持,现在很多编译器默认C89标准,或者不支持C99标准,这样写容易出错.
第一个for循环里面,直接把n=0,1,2的情况跳过了.既然这样,变量n直接把初值赋为3不就好了,赋值0干嘛.
第二个for循环里面,判断到isqrt(n)就可以了,还有更简单的求质数算法,感兴趣可以百度.