c语言如何判断质数?素数,也被称为质数,是指除了1和它本身以外,不能被其他整数整除的数。例如17就是一个素数,因为它不能被2到16的任一整数整除。因此,判断一个整数m是否是素数,只需将m除以2到m-1之间的每一个整数,若都不能被整除,那么m就是一个素数。然而,这个方法可以通过简化来提高效率。m不必被2到m-1之间的每一个整数去除,那么,c语言如何判断质数?一起来了解一下吧。
算法1
这里使用的是循环结构,for语句,
输入n,判断是否为素数
int n,i;
scanf("%d",n);
for(i=2;i 从2开始到n-1,即除了1和本身以外的数,n都不能整除他们 for(i=2;i if(n%i==0) break; 如果能被2到n-1中的某个数整除,则break调出该循环,n不是素数 if(i>=n) printf("n is prime"); esle printf("n is not prime") 如果n是素数,则不满足步骤4中if的条件,此时i=n 如果n不是素数,n满足步骤4中的if条件,此时i∈[2,n-1] 扩展资料 c语言注意事项 1、每个程序中一定包含main()函数,尽管C语言中对函数命名没有限制。 2、printf函数永远不会自动换行,只能用\n来实现,回车键进行的换行在编译中会出现错误信息。 3、在vs2008中编译,测试需要加 system("pause"),来暂停dos自动退出导致的printf无法显示。 4、所有自定义变量,必须声明才能使用。 5、每行只书写一条语句,在运算符两边加上一个空格,便于阅读。 #include int main() { int a; int i; int b=0; printf("请输入一个整数:"); scanf("%5d",&a); for(i=1;i<=a;i++) { if(a%i==0) { b++; } } if(b==2) { printf("%5d是质数!\n",a); } else{ printf("%5d不是质数!\n",a); } return 0; } C语言判断素数(求素数)(两种方法) 素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。 思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。 思路2):另外判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~之间的每一个整数去除就可以了。如果 m 不能被 2 ~间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。 原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 ,另一个大于或等于 。例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之间有无因子即可。 两种思路的代码请看解析。 思路1) 的代码: #include stdio.h int main(){ int a=0;// 素数的个数 int num=0;// 输入的整数 printf(输入一个整数:); scanf(%d,num); for(int i=2;inum;i++){ if(num%i==0){ a++;// 素数个数加1 } } if(a==0){ printf(%d是素数。 素数又称质数,所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。 首先要知道素数是不等于1,它的因子只有1和它本身。判断一个数是否为素数,可以用大于1小于给定数的所有数去除给定数,如果有任何一个能够除尽,就表示是合数,反之是素数。 扩展资料: 首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。 命题 1 对于B=36N+1 形数而言。 若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解, 则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。 若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解, 则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。 两式都无解,是素数。 参考资料来源:百度百科-质数 1、查表法: 主要是指查“质数表”。编制质数表的过程是:按照自然数列,第一个数1不是质数,因此要除外,然后按顺序写出2至100的所有自然数,这些数中2是质数,把它留下,把2后面所有2的倍数划去,2后面的3是质数,接着再把3后面所有3的倍数划去,如此继续下去,剩下的便是100以内的全部质数。 2、试除法: 在手头上没有质数表的情况下,可以用试除法来判断一个自然数是不是质数。例如判断143、179是不是质数,就可以按从小到大的顺序用2、3、5、7、11……等质数去试除。一般情况下用20以内的2、3、5、7、11、13、17、19这8个质数去除就可以了。 如143,这个数的个位是3,排除了被2、5整除的可能性,它各位数字的和是1+4+3=8,也不可能被3整除,通过口算也证明不能被7整除,当试除到11时,商正好是13,到此就可以断定143不是质数。 以上就是c语言如何判断质数的全部内容,判断一个数是否是质数在于看这个数字是否只能被1和它本身所整除的整数。但是有一个例外,1不属于质数。c语言中的质数:数学的概念中,素数就是只能被1和它本身所整除的整数。但是有一个例外,就是1不属于素数。所以你在输入一个整数并加以判断的时候就需要考虑这种情况了。内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。
素数代码c语言
判断一个数是否为素数
素数C语言

求素数c语言程序编写