900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 判断一个数是否为素数(质数) c语言

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

时间:2021-11-21 20:37:11

相关推荐

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

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。最小的质数是2,它也是唯一的偶数质数。

原理:number 只需被 (2 ~ 根号下number)之间的每一个整数去除就可以了(包括 根号下number这个数)。如果 nummber不能被 (2 ~ 根号下number) 间任一整数整除,number 必定是素数

#include"stdio.h"#include"math.h"main(){int number,i,n;printf("请输入一个正整数:\t");scanf("%d",&number);while(number>0)//输入0或小于0的数,结束循环{n=(int)sqrt(number);//开平方if(number==1){printf("1既不是素数,也不是合数\n");//注:1既不是素数,也不是合数scanf("%d",&number);continue; //跳出这一次循环 }for(i=2;i<=n;i++) //2和3的开平方分别为1.414和1.732,不满足循环条件(i<=n){if(number%i==0)break;}if(i>n) //i=2,2和3满足(i>n),所以是素数printf("%d是素数\n",number);elseprintf("%d不是素数\n",number);printf("请输入一个正整数:\t");scanf("%d",&number); }}

运行:

2.以下是函数形式

#include"stdio.h"#include"math.h"void find_prime(int number){int n,i;n=(int)sqrt(number);for(i=2;i<=n;i++){if(number%i==0)break;}if(i>n)printf("%d是素数\n",number);elseprintf("%d不是素数\n",number);}void main(){int number;printf("请输入大于一的正整数:\t");scanf("%d",&number);if(number>1)find_prime(number);else if(number==1)printf("1既不是质数,也不是合数\n");elseprintf("请输入大于一的正整数\n");}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。