4.3python素数及运用

这篇具有很好参考价值的文章主要介绍了4.3python素数及运用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1关 素数判定

本关任务:编写一个能进行素数判定的小程序。

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}不是素数')

第2关 输出N以内的所有素数

本关任务:编写一个能输出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)

第3关 寻找回文素数

本关任务:编写一个能寻找回文素数的小程序。

如果一个整数是素数,同时其对应的字符串是回文字符串时,便称其为回文素数。例如,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)

第4关 寻找反素数

本关任务:编写一个寻找反素数的小程序。

反素数是指一个将其逆向拼写后也是一个素数的非回文数。例如:1771 都是素数且均不是回文数,所以 1771 都是反素数。

输入一个正整数 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)     

第5关 哥德巴赫猜想

哥德巴赫猜想

1742 年,哥德巴赫给欧拉的信中提出了以下猜想“任一大于 2 的整数都可写成三个质数之和”。常见的猜想陈述为欧拉的版本,即任一大于 2 的偶数都可写成两个素数之和,亦称为“强哥德巴赫猜想”或“关于偶数的哥德巴赫猜想”。比如: 24=5+19,其中 519 都是素数。输入一个正整数 N,当输入为偶数时,分行按照格式“N = p + q” 输出 N 的所有素数分解,其中 pq 均为素数且 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://www.toymoban.com/news/detail-859068.html

到了这里,关于4.3python素数及运用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java输入任意正整数,判断其以内所有的素数(1000以内的所有素数)

    * 思路1: * 从约数的角度出发 * 5的约数为1,5,和为6 * 13的约数为1,13,和为14 * 17的约数为1,17,和为18 * 18的约数为1,2,3,6,9,18,,和为39 * 所以如果约数的和==i+1;则为素数,否则为偶数 * * 思路2: * 判断约数个数是否大约2 * 2的约数为1,2   约数个数为2 * 11的约数为1,11   约数个

    2023年04月08日
    浏览(43)
  • C语言 五种方法输出100以内的素数(质数) 源码

    目录   写在前面: 输出前20万个素数,对比简单遍历和欧拉筛选的运行时间。 简单遍历: 欧拉筛选: 一、简单遍历 二、遍历至该数的平方根       三、用x/i来代替sqrt(x) 四、朴素筛法 五、埃式筛法 六、欧拉筛法           简单遍历: 3.243秒 欧拉筛选: 0.353秒     

    2024年02月05日
    浏览(49)
  • 用C语言写一个100以内的素数的循环

    写出100以内的素数,首先确定思路,确定框架和可以用到的函数, 素数的特征就是除了1以外不能被被别的数整除。所以这个循环函数就用到for循环从2到100(因为1不是素数),在for循环内部判断这个数是否能被除了1之外的数整除,如果被整除则不为素数,接着下一个数继续

    2024年02月11日
    浏览(41)
  • C 语言 输入一个正整数,程序会利用is_prime函数判断该数是否是素数,如果是素数,输出“%d是素数“,否则输出“%d不是素数“。

    ``` 输入一个正整数,程序会利用is_prime函数判断该数是否是素数,如果是素数,输出\\\"%d是素数\\\",否则输出\\\"%d不是素数\\\"。

    2024年02月11日
    浏览(56)
  • [c语言]求100以内的素数

    (一)、 关于整除算法: 要判断某数是不是质数,不必验证某数m是否被2~m-1的某一个整数整除,只需验证是否被2~sqrt(m)的某一个整数去除就可以了。若只要m被2~sqrt(m)的某个整数整除了,那么它就不是质数。例16能被2,4,8整除,根号16=4,2为2~4之间的一个整数 (二)、

    2024年02月06日
    浏览(44)
  • 【Python百练——第1练】使用Python求100以内的所有偶数

    作者: Insist-- 个人主页: insist--个人主页 作者简介: 梦想从未散场,传奇永不落幕,持续更新优质网络知识、Python知识、Linux知识以及各种小技巧,愿你我共同在CSDN进步 欢迎点赞👍收藏📁评论📒 目录 一、使用Python求100以内的偶数 1. 生活案例带入 2. 代码与实现逻辑 3. 代

    2024年02月07日
    浏览(41)
  • 使用筛选法求出 n 以内的素数

    输入描述: 多组输入,每行输入一个正整数(不大于100)。 输出描述: 针对每行输入的整数n,输出两行,第一行,输出n之内(包括n)的素数,用空格分隔, 第二行,输出数组中2之后被清0 的个数。每行输出后换行 筛选法求解过程为:将2~n之间的正整数放在数组内存储,

    2024年02月13日
    浏览(77)
  • Java语言怎么编写一个程序计算出租车的运输费用:出租车起步15公里以内20块钱,需要支付调头费用

    下面是一个Java语言编写的计算出租车运输费用的程序:   ```java import java.util.Scanner;   public class TaxiFareCalculator {     public static void main(String[] args) {         Scanner input = new Scanner(System.in);           System.out.print(\\\"请输入出租车行驶的里程(公里):\\\");         double distance

    2024年02月12日
    浏览(62)
  • Python-输出1~100之间的素数

    2024年02月05日
    浏览(48)
  • Python-两种方法实现输出素数(质数)

    方案一: 程序的设计为: 1、设为被除数,取值范围可以自行设定,本例设为3-100;(1、2均不是素数) 2、设计为除数,除数的取值范围为除掉1和自身以及比自身大的数字(当被除数本身不为0时,除以比自身大的数余数一定不为零。) 3、在这两个前提下,先让固定,遍历范

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包