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

C语言判断一个数是否为素数

时间:2021-10-24 15:01:27

相关推荐

C语言判断一个数是否为素数

输入一个大于3的整数n,判断它是否为素数。

注:素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”。

素数也可以被等价表述成:“在正整数范围内,大于1并且只有1和自身两个约数的数”。

思路:让n被i除(i的值从2到n-1),如果n能被2到n-1中任意一个整数整除,则表示n不是素数,退出循环。

#include <stdio.h> int main(){int i,n;system("mode con cp select=65001");printf("请输入一个大于3的整数n=");scanf("%d",&n);for(i=2;i<=n-1;i++){// 当i>n-1时,跳出循环if(n%i==0){break;}}// printf("i=%d\n",i);if(i>=n){printf("你输入的%d是素数\n",n);}else{ printf("你输入的%d不是素数\n",n);}return 0;}

程序改进:如果n能被2到n-1之间任意一整数整除,其两个因子一定有一个小于或等于,另一个数大于或等于。例如,16能被2、4、8整除,16=2*8,因子2小于4,因子8大于4,因子4等于。

#include <stdio.h>#include <math.h> int main(){int i,n,k;system("mode con cp select=65001");printf("请输入一个大于3的整数n=");scanf("%d",&n);k=(int)sqrt(n); //对n求平方根,再取整for(i=2;i<=k;i++){if(n%i==0){break;}}// printf("i=%d\n",i);// printf("k=%d\n",k);if(i>=k){printf("你输入的%d是素数\n",n);}else{ printf("你输入的%d不是素数\n",n);}return 0;}

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