素数
判断一个数是不是素数
重点:变量isPrime作为标志,用来判断,用break跳出循环。程序中可设这种变量作为标志。
printf("--------------判断一个数是不是素数------------\n");
int num1;
printf("请输入一个整数:");
scanf("%d", &num1);
int k;
int isPrime = 1;
for(k=2;k<num1;k++)
{
if (num1%k == 0)
{
isPrime = 0;
break;//continue;
}
//printf("%d\n",k);
}
if (isPrime==1)
{
printf("这个数是素数。\n");
}else
{
printf("这个数不是素数。\n");
}
减少循环次数方法一
方法:偶数不参与循环,可直接被判断为不是素数。每次循环加2。
//简化素数问题:循环走n/2遍/走平方根遍
int isPrime(int x)
{
int ret=1;
int i;
if (x==1 || (x%2==0 && x!=2))
ret=0;
for(i=3;i<x;i+=2)
{
if(x%i=