-
2021-06-29 15:22:50
- 时间限制: 1 Sec 内存限制: 128 MB
题目描述
对于正整数N(N<1000000),如果N只能被1和N整除,则N为素数(质数),否则N为合数。
例如:自然数7,只能被7(它自己)和1整除,所以7是素数。
又如,自然数6,可以被1、2、3、6整除,所以6不是素数。输入
输入一个正整数N(N<1000000)
样例输入
2 73 119
样例输出
Yes Yes No
【Solution】
#include<stdio.h> int main() { int i,n,sum=0; scanf("%d", &n); if(n>1){ for(i=2;i<n;i++){ if(n%i==0) sum++; } if(sum!=0) printf("No\n"); else printf("Yes\n"); } else printf("No\n"); }
【Notice】
0和1不是质数。质数定义为在大于1的自然数中, 除了1和它本身以外不再有其他因数。合数指自然数中除了能被1和本身整除外, 还能被其他数(0除外)整除的数。与之相对的是质数, 而1既不属于质数也不属于合数。最小的合数是4。 其中,完全数与相亲数是以它为基础的。
更多相关内容 -
Python练习——判断正整数是否为质数的三种方法
2020-12-21 16:30:36判断正整数是否为质数的三种方法 本文参考《如何判断一个正整数是否为质数的三种方法 | 附Python程序》结合自身理解,作为笔记发布。如果对你有帮助,点赞关注哦! 一、基本概念 质数(又称素数): 一个大于1的... -
Python编程判断一个正整数是否为素数的方法
2020-12-23 15:16:27本文实例讲述了Python编程判断一个正整数是否为素数的方法。分享给大家供大家参考,具体如下: import string import math #判断是否素数的函数 def isPrime(n): if(n<2 xss=removed>2): for d in range(2,int... -
python判断所输入的任意一个正整数是否为素数的两种方法
2020-09-19 05:29:53今天小编就为大家分享一篇python判断所输入的任意一个正整数是否为素数的两种方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
Python判断一个正整数是否为素数的算法
2020-12-22 11:01:41先定义一个有序列表,作为素数池,这样多次操作的时候...定义素数判断函数 def isPrime(num): if num in primePool: return True sq = math.sqrt(num) p=2 for m in primePool: #先从素数池中找 p = m if -
Python例题(一) 输入一个正整数判断是不是素数
2020-12-22 11:20:19大于3的质数只能是6n-1或者6n+1型(n是正整数)。(不能说6n-1或者6n+1型的数都是质数)。 合数的特点 所有大于2的偶数都是合数; 所有大于5的奇数中,个位为5的都是合数; 除0以外,所有个位为0的自然数都是合数; 所有... -
Python判断一个整数是否为素数
2020-12-21 14:46:11素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数即只能被1和自己本身整除的数思路及步骤给定一个大于2的整数n令i=2用n除i,得到余数r判断r==0是否成立,如果成立则n不是素数,结束算法...素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
即只能被1和自己本身整除的数
思路及步骤
给定一个大于2的整数n
令i=2
用n除i,得到余数r
判断r==0是否成立,如果成立则n不是素数,结束算法;如果不成立则将i的值+1仍然用i表示
判断i>(n-1)是否成立,如果成立则n是素数;否则返回第3步
流程图
使用while语句实现
n = int(input("请输入一个数字:"))
i = 2
while True:
if n < 2:
print("请输入一个大于或者等于2的整数")
break
elif n == 2:
print("{}是素数".format(n))
break
elif n > 2:
r = n % i
i += 1
if r == 0 or i > n-1:
if r == 0:
print("{}不是素数".format(n))
break
else:
print("{}是素数".format(n))
break
执行步骤
如果n=1则退出
如果n=2则输出2是素数
如果n=3则按照以下步骤执行
1,i=2 n=3 判断n>2满足条件执行r=3%2=1
2,i增加1 i=3
3,判断r == 0 结果为False i > n-1 3>3-1 结果为True 整体结果为True继续执行if下面语句
4,判断r==0结果为False则执行else输出3是素数
如果n=4则安之以下步骤执行
1,i=2 n=4判断n>2满足条件 执行r=4%2=0
2,i增加1 i=3
3,判断r==0结果为True整体结果为True无需判断i>n-1整体结果为True
4, 判断r==0所以大于4不是素数
以此类推
输入任何数字只要可以被2至输入的整数之间的任意一个数整除即余数为0则可以判断为非素数
直到被除数增加到与输入的数字一致之间还没有出现可以整数的被除数则判断该数为素数
使用while循环需要把被除数i从2开始没执行一次+1 下面使用for循环实现,i的取值为2至输入的整数n
n = int(input("请输入一个数字:"))
for i in range(2, n):
r = n % i
if r == 0:
print("{}不是素数".format(n))
break
else:
print("{}是素数".format(n))
实现的效果是一样的
本列使用for循环被除数为从2开始至n-1,如果之间有能整数的被除数则可以判断数字不是素数
如果一直到n-1还是没有被整除则认为输入的n为素数
注意else的位置是与for循环同级而不是与if同级,如果以if同级则在第一次循环i=2的时候就通过余数来判断一个数是奇数还是偶数了
注意:在python中else不一定跟在if后也可以写在for后面
-
判断正整数是否是素数的几种方法
2019-03-24 10:21:08题目一:输入一个正整数m,判断是否是素数。 思路一: 素数指只能被1和其本身整除,比如13只能被1和13整除,假如有整数m, 在2~m-1(包括1与m-1)存在某个数n,使得m % n = 0; 那么m就不是素数。 代码如下(编程...题目一:输入一个正整数m,判断是否是素数。
思路一: 素数指只能被1和其本身整除,比如13只能被1和13整除,假如有整数m, 在2~m-1(包括1与m-1)存在某个数n,使得
m % n = 0
; 那么m就不是素数。
代码如下(编程语言是C):#include <stdio.h> int main() { int i,m; scanf("%d", &m); //输入正整数 m; for(i = 2; i <= m-1; i++){ if(m % i == 0){ //遍历[2,m-1],判断 m % i 是否为0;若为0,直接break强制退出循环,执行 printf("%d 不是素数!", m); //for循环的下一语句,即if语句 break; } } if(i == m) //上一for语句主要是判断[2,m-1]是否存在被 m 整除的数,如果没有, printf("%d 是素数!", m); //说明m是素数,此时i == m(因为m除以i不等于0的最后一个数i是m-1 system("pause"); // 经过i++后i == m),所以可通过i == m来输出素数 return 0; }
思路二: 思路一中的 [ 2, m-1 ] 区间可缩小到 [ 2, m / 2 ] ,是因为m不可能被大于 m/2 的数整数。并且在数学上还可以证明,该区间还可缩小为[ 2, sqrt(m) ]。
代码如下(编程语言是C):#include <stdio.h> int main() { int i,m; scanf("%d", &m); for(i = 2; i <= m/2; i++){ if(m % i == 0){ printf("%d 不是素数!", m); break; } } if(i == m/2 + 1) //最关键一步;如果m为素数,就代表m除以i,直到i == m/2,m都不能整除[ 2, m-1 ] 里任意一个数,此时再经过i++后, printf("%d 是素数!", m); //i== m/2 + 1,然后通过if语句判断输出素数 system("pause"); return 0; }
思路三(2019/4/21添加的方法):
#include<stdio.h> int main(void) { int N, i, j = 0; scanf("%d",&N); if (N >= 3 && N <= 10000) { for (i = 2; i <= N / 2; i++) { if (N % i == 0) j++; } } if (j == 0) printf("prime\n"); else printf("not prime\n"); return 0; }
-
python如何判断一个正整数是否为素数??
2021-03-24 19:23:13如判断一个正整数是否为素数,则要用到带else字句的循环结构。 代码如下 n = int(input(“输入一个正整数n(n>=2):”)) for i in range(2,n): if n%i==0: print(n,“不是素数”) break else: print(n,“是素数...如判断一个正整数是否为素数,则要用到带else字句的循环结构。
代码如下n = int(input("输入一个正整数n(n>=2):")) for i in range(2,n): if n%i==0: print(n,"不是素数") break else: print(n,"是素数")
运行结果如下
代码中的else子句属于for循环结构的一部分,是对for循环由于序列遍历结束而自然退出时所做的处理。当for循环自然结束退出时,表示break语句并未执行到,即没有找到任何一个i是n的约数,因此判定n为素数。
-
学习-编写判断一个正整数是否为素数的函数
2022-05-17 22:19:49第1关:判断一个正整数是否为素数的函数 本关任务:编写一个 prime ()函数,判断一个正整数是否为素数,并且函数体里输出判断结果,该函数没有返回值。在主函数中输入10个正整数,调用prime ()函数判断是否为素数。 ... -
C语言 判断一个正整数是否为素数
2022-07-11 22:24:39#include #include void Sushu(int x) { int i,n; n = (int)sqrt(x); for (i = 2; i n) printf("这个数是素数"); else printf("这个数不是素数"); } int main() -
键盘输入一个正整数,程式设计判断其是否为素数(即质数)
2021-05-25 07:17:18键盘输入一个正整数,程式设计判断其是否为素数(即质数)以下文字...键盘输入一个正整数,程式设计判断其是否为素数(即质数)#includeint main(){int n1,nm,i,j,flag,count=0;do{printf("Input START and END=?");sc... -
判断一个正整数是否素数
2019-10-10 15:38:03素数指的是只能被1和自身整除的大于1的整数 对于每个数num,并不需要从2判断到num-1,这样效率很低。 假若一个数可以进行因式分解,那么分解得到的两个数必将有一个小于等于sqrt(num),另一个大于等于sqrt(num). 所以... -
2021-5-29【头歌】【判断一个正整数是否为素数的函数】
2021-06-16 17:15:48第1关:判断一个正整数是否为素数的函数 100 任务要求 参考答案 评论 任务描述 相关知识 编程要求 测试说明 任务描述 本关任务:编写一个 prime ()函数,判断一个正整数是否为素数,并且函数体里输出判断结果,该... -
设计一个函数用来判断一个整数是否为素数
2021-05-24 01:05:45设计一个函数用来判断一个整数是否为素数以下文字资料是由(历史新知网...设计一个函数用来判断一个整数是否为素数#include #include int check(int n){ int i,k=1; float m=sqrt((float) n); for(i=2;i<=(int)m... -
Python编程判断一个正整数是否为素数的实例源码分享
2021-01-13 01:10:46这篇文章主要介绍了Python编程判断一个正整数是否为素数的方法,涉及Python数学运算相关操作技巧,需要的朋友可以参考下本文实例讲述了Python编程判断一个正整数是否为素数的方法。分享给各位猫咪们供各位猫咪们参考,... -
使用Python判断一个正整数数是否为素数
2019-09-26 23:06:42使用Python判断一个正整数数是否为素数 ** 判定一个数是否为素数的基本思路: 1、了解素数的定义,一个正整数n若为素数,则它的约数只能是1和n本身, 2、根据定义,我们需要将这个数除以从2到n-1之间的全部正整数,... -
编写一个函数判断一个整数是不是素数c语言,编写函数判断一个整数是否为素数....
2021-11-16 19:17:15判断是不是素数。