赞
踩
本关任务:编写一个能进行素数判定的小程序。
- def is_prime(n):
- """判断素数的函数,接收一个正整数为参数,返回值是布尔类型。参数是素数时返回True,否则返回False"""
- #==================Begin=================================
- # 补充你的代码
- if n < 2 :
- return False
- else:
- for i in range(2,n):
- if n % i ==0:
- return False
- return True
- #===================End================================
-
- positive_int = int(input()) # 输入一个正整数
- if is_prime(positive_int):
- print(f'{positive_int}是素数')
- else:
- print(f'{positive_int}不是素数')
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
本关任务:编写一个能输出N以内的所有素数的小程序。
输入格式输入一个正整数
输出格式在同一行中从小到大依次输出不大于 n 的全部素数,每个数字后面一个空格。
测试输入:97;
预期输出:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
- def is_prime(n):
- """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False。减小判定区间,减少循环次数,提升效率"""
- #======================Begin=================================
- # 补充你的代码
- if n < 2 :
- return False
- else:
- a = int(n**(1/2)+1)
- for i in range(2,a):
- if n % i ==0:
- return False
- return True
- #=======================End================================
-
- def output_prime(number):
- """接收一个正整数为参数,遍历从0到number之间的所有整数
- 在一行中输出不大于number的所有素数,每个数字后一个空格,函数无返回值。"""
- #======================Begin=================================
- # 补充你的代码
- for i in range(number+1):
- if is_prime(i):
- print(i,end=" ")
- #=======================End================================
-
- positive_int = int(input())
- output_prime(positive_int)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
本关任务:编写一个能寻找回文素数的小程序。
如果一个整数是素数,同时其对应的字符串是回文字符串时,便称其为回文素数。例如,131 既是素数,其对应的字符串“131”又是回文字符串,所以 131 是回文素数。
输入一个正整数 n , 请你在一行内输出从小到大排列的小于这个数的所有回文素数,每个数字后面一个空格。
- def is_prime(n):
- """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False。减小判定区间,减少循环次数,提升效率"""
- #======================Begin=================================
- # 补充你的代码
- if n < 2 :
- return False
- elif n == 2:
- return True
- else:
- a= int(n**(1/2)+1)
- for i in range(2,a+1):
- if n % i ==0:
- return False
- return True
- #=========================End==============================
-
- def plalindrome_prime(number):
- """接收一个正整数参数number,遍历从0到number之间的所有整数,
- 若某个数是素数,且转为字符串后是回文字符串,则称其中回文素数
- 找出并在同一行中输出小于number的所有回文素数,每个数字后一个空格,函数无返回值。"""
- #======================Begin=================================
- # 补充你的代码
- for i in range(number):
- if is_prime(i) and str(i) ==str(i)[::-1]:
- print(i,end = " ")
- #=========================End==============================
-
- positive_int = int(input())
- plalindrome_prime(positive_int)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
本关任务:编写一个寻找反素数的小程序。
反素数是指一个将其逆向拼写后也是一个素数的非回文数。例如:17 和 71 都是素数且均不是回文数,所以 17 和 71 都是反素数。
输入一个正整数 n ,输出从小到大顺序输出小于 n 的所有反素数。
- def is_prime(n):
- """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False。减小判定区间,减少循环次数,提升效率"""
- #======================Begin=================================
- # 补充你的代码
- if n < 2 :
- return False
- elif n == 2:
- return True
- else:
- a= int(n**(1/2)+1)
- for i in range(2,a+1):
- if n % i ==0:
- return False
- return True
- #========================End===============================
-
- def reverse_prime(number):
- """接收一个正整数参数,找出并在同一行内输出所有小于number的反素数,每个数字后一个空格。
- 反素数指某数i及其逆序数都是素数,但数i对应的字符串不是回文字符串。函数无返回值"""
- #======================Begin=================================
- # 补充你的代码
- for i in range(number):
- if is_prime(i) and is_prime(int(str(i)[::-1])) and str(i) !=str(i)[::-1]:
- print(i,end = " ")
- #========================End===============================
- positive_int = int(input())
- reverse_prime(positive_int)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
哥德巴赫猜想
1742 年,哥德巴赫给欧拉的信中提出了以下猜想“任一大于 2 的整数都可写成三个质数之和”。常见的猜想陈述为欧拉的版本,即任一大于 2 的偶数都可写成两个素数之和,亦称为“强哥德巴赫猜想”或“关于偶数的哥德巴赫猜想”。比如: 24=5+19,其中 5 和 19 都是素数。输入一个正整数 N,当输入为偶数时,分行按照格式“N = p + q” 输出 N 的所有素数分解,其中 p 、 q 均为素数且 p ≤ q。当输入为奇数或 N<4 时,输出 'Data error!'
- def is_prime(n):
- """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False"""
- # ====================Begin===================================
- # 补充你的代码
- if n < 2:
- return False
- elif n == 2:
- return True
- else:
- a = int(n ** (1 / 2) + 1)
- for i in range(2, a + 1):
- if n % i == 0:
- return False
- return True
- # ======================End=================================
-
- def goldbach_conjecture(num):
- """ 哥德巴赫猜想, 接收一个不小于4的正整数为参数。
- 当参数为不小于4的偶数时,将其分解为两个素数的加和,按小数+数的格式输出。
- 有多种组合时全部输出,但不输出重复的组合,例如输出8=3+5,不输出8=5+3。
- 参数为奇数或小于4时,输出'Data error!'
- """
- # ====================Begin===================================
- # 补充你的代码
-
- if 4<=num and num % 2 == 0:
- for i in range(1,num + 1):
- n = num - i
- if is_prime(i) and is_prime(n) and i<=n :
- print(f"{num}={i}+{n}")
- else:
- print('Data error!')
-
- # ======================End=================================
-
- if __name__ == '__main__':
- positive_even = int(input()) # 输入一个正数
- goldbach_conjecture(positive_even)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
今天的分享就到这里了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。