C语言判断一个数是否是质数

如题所述

根据质数的定义,在判断一个数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是合数。)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-28

#include <stdio.h>
int main()
{int i,n;
 scanf("%d",&n);
 for(i=2;i*i<=n;i++)
   if(n%i==0)break;
 printf("%s\n",n%i==0?"No":"Yes");
 return 0;
}

本回答被网友采纳
第2个回答  2018-05-30
#include<stdio.h>

void main() {
int num, i;
scanf("%d", &num);
for (i = 2; i < num && num % i != 0; i++);
if (i != num) {
    printf("您输入的不是素数!\n");
}
else {
    printf("您输入的是素数!\n");
}
}

上面这个算法比较取巧

相似回答