c语言判断一个数是否为质数

Python020

c语言判断一个数是否为质数,第1张

#include<stdio.h>

int main()

{

int i, n

while (scanf("%d", &n) != EOF)

{

for (i = 2i <ni++)

if (n % i == 0)

break

if (i >= n&&n>1)

printf("%d是质数\n", n)

else

printf("%d不是质数\n", n)

}

return 0

}

根据质数的定义,在判断一个数n是否是质数时,只要用1至n-1去除n,看看能否整除即可。

还有更好的办法:先找一个数m,使m的平方大于n,再用小于等于m的质数去除n(n为被除数),如果都不能整除,则n必然是质数。如我们要判断1993是不是质数,50*50>1993,那么只要用1993除以<50的质数看是否能整除,若不能即为质数。100以内的质数有25个,还是比较好记的,只要记熟100以内质数,就可以快速判断10000以内的数是不是质数。

100以内的质数有2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97,在100内共有25个质数。

只有1和它本身两个因数的自然数,叫质数(或称素数)。(如:由2÷1=2,2÷2=1,可知2的因数只有1和它本身2这两个约数,所以2就是质数。与之相对立的是合数:“除了1和它本身两个因数外,还有其它因数的数,叫合数。”如:4÷1=4,4÷2=2,4÷4=1,很显然,4的因数除了1和它本身4这两个因数以外,还有因数2,所以4是合数。)