首页 > 编程知识 正文

输入一个整数判断是否为素数,c语言判断素数的算法

时间:2023-05-04 10:44:47 阅读:153584 作者:4982

问题:素数(prime number )也称为素数,并且包括无限个。 质数定义为在大于1的自然数中,1和其本身以外的因数消失的数。 这样的数称为素数。

代码1:

#includestdio.hintmain((intn,I,flag=0; 输入printf ('正整数: ); scanf('%d ',n ); for(I=2; i=n/2; I ) ) /满足该条件的不是素数if (n % I==0) ) { flag=1; 布雷克; }if(flag==0) printf ) (%d为素数),n ); elseprintf('%d不是素数”),n ); 返回0; }运行结果:

如果输入正整数: 2929,质数代码2:将确定两个数之间的素数

#includestdio.hintmain((intlow,high,I,flag; 输入printf(2 (两个整数: ); scanf('%d%d )、low和high ); printf('%d和%d之间的素数为: ',low,high ); while(lowhigh ) ) { flag=0; for(I=2; i=low/2; I ) if(low%I==0) ) { flag=1; 布雷克; }if(flag==0) printf ),low ); 行; }return 0; }运行结果:

在两个整数: 100 200100和200之间输入的素数3360101103107107107107109113127137139157163167173179181191191199代码3:使用函数来计算两个数字之间的素数

# include stdio.hintcheckprimenumber (intn ); intmain((intN1,n2,I,flag; 输入printf ('两个正整数: ); scanf('%d%d )、n1和n2 ); printf('%d和%d之间的素数为: ',n1,n2 ); for(I=N11; in2; I ) )//判断是否为素数的flag=checkprimenumber(I; if(flag==1) printf )、I ); }return 0; //函数定义intcheckprimenumber(intn ) {int j,flag=1; for(j=2; j=n/2; j ) if(n%j==0) ) { flag=0; 布雷克; } }返回标志; }运行结果:

如果输入两个正整数: 10 3010和30之间的素数为: 11 13 17 19 23 29的参考代码:则可能需要使用sqrt来降低时间复杂度

# include stdio.h # include math.hintissushu (intk ); int main () {int n,count=0; scanf('%d ',n ); for(intI=n; i3; I----if(isSushu ) I ) ) if ) isSushu ) I-2 ) ) count; printf('%d ',count; 返回0; (intisSushu ) intk ) ) for ) intI=2; Isqrt(k ) 1; I ) if(k%I==0) return 0; }return 1; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。