本文目录一览:
- 1、C语言中如何求质数
- 2、C语言的判断质数函数
- 3、C语言中的质数
C语言中如何求质数
#includestdio.h
int isprime(int n)
{ for(int i=2; i*i=n; i++)
if(n%i==0)return 0;
return n1;
}
int main()
{ int i,n;
scanf("%d",n);
for(i=2; in; i++)
if(isprime(i))
printf("%5d",i);
return 0;
}
C语言的判断质数函数
这是我以前写过的判断质数的程序,希望对你有帮助。
#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
C语言中的质数
数学的概念中,素数就是只能被1和它本身所整除的整数。但是有一个例外,就是1不属于素数。所以你在输入一个整数并加以判断的时候就需要考虑这种情况了。如下即可:
while(scanf("%lu", num) == 1 num != 1)
这里用到了while循环来判断输入的数值并加以判断,如果输入格式正确的话会返回一个1并将输入的数值存入num这个变量中,然后再判断num的值是否为1。
在这里有一条很好用的规则用于素数的判断:测试的数只需要界于2到num的平方根之间的所有数,看它们是否可以整除num。如果可以整除,说明输入的数不是素数;反之,说明输入的数是素数。
到这里,就会有人说平方根怎么求,其实这个很好解决。你完全可以像下面这样描述判断条件:
for(div = 2; (div * div) = num;div++){ if(num % div == 0){ if((div * div) != num){
printf("%lu is divisible by %lu and %lu.\n", num, div, num / div);
}else {
printf("%lu is divisible by %lu.\n", num, div);
}
}
}
在这里,在if条件语句里面还嵌套了一个if条件语句,用来判断两个约数是否是一样的,比如144,约数是12和12,这时候就只需要打印一个约数即可。