学校Python作业(4_1函数_素数问题)

 本系列文章为同学困扰的python做出作业答案汇总,答案皆为本学生自己边学边做汇总上传的,编排不易,希望大家喜欢。

本作业所有内容均在github上有留存,每次作业github上会最先发布,CSDN上需要编辑将会慢一两天,着急完成作业的同学可以前往github抢先学习:Opve2/homework: 这个作业 (github.com)

第一关 :素数判定

def is_prime(n): 
    """判断素数的函数,接收一个正整数为参数,返回值是布尔类型。参数是素数时返回True,否则返回False"""
    #==================Begin=================================
    # 补充你的代码
    if n < 2:
        return False 
    for i in range(2,n):
        if n % i == 0:
            return False
    else:
        return True
    
    #===================End================================


positive_int = int(input())      # 输入一个正整数
if is_prime(positive_int):
    print(f'{positive_int}是素数') 
else:
    print(f'{positive_int}不是素数')

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

def is_prime(n):
    """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False。减小判定区间,减少循环次数,提升效率"""
    #======================Begin=================================
    # 补充你的代码
    if n < 2:
        return False 
    for i in range(2,n):
        if n % i == 0:
            return False
    else:
        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)    

第三关: 寻找回文素数

def is_prime(n):
    """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False。减小判定区间,减少循环次数,提升效率"""
    #======================Begin=================================
    # 补充你的代码
    if n < 2:
        return False 
    for i in range(2,n):
        if n % i == 0:
            return False
    else:
        return True
    #=========================End==============================


def plalindrome_prime(number):
    """接收一个正整数参数number,遍历从0到number之间的所有整数,
    若某个数是素数,且转为字符串后是回文字符串,则称其中回文素数
    找出并在同一行中输出小于number的所有回文素数,每个数字后一个空格,函数无返回值。"""
    #======================Begin=================================
    # 补充你的代码
    for i in range(number):  #遍历
        if str(i) == str(i)[::-1] and is_prime(i):
            print(i,end=' ')  #输出从小到大排列的小于这个数的所有回文素数
    #=========================End==============================


positive_int = int(input())         
plalindrome_prime(positive_int)      

第四关:寻找反素数

def is_prime(n):
    """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False。减小判定区间,减少循环次数,提升效率"""
    #======================Begin=================================
    # 补充你的代码
    if n < 2:
        return False 
    for i in range(2,n):
        if n % i == 0:
            return False
    else:
        return True
    #========================End===============================


def reverse_prime(number):
    """接收一个正整数参数,找出并在同一行内输出所有小于number的反素数,每个数字后一个空格。
    反素数指某数i及其逆序数都是素数,但数i对应的字符串不是回文字符串。函数无返回值"""
    #======================Begin=================================
    # 补充你的代码
    for i in range(number):    #遍历
        if str(i) != str(i)[::-1] and is_prime(i) and is_prime(int(str(i)[::-1])):
            print(i,end=' ')  #输出一行内输出从小到大排列的小于这个数的所有反素数
    #========================End===============================


positive_int = int(input())         
reverse_prime(positive_int)     

第五关:哥德巴赫猜想 

def is_prime(n):
    """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False"""
    #====================Begin===================================
    # 补充你的代码
    if n < 2:
        return False 
    for i in range(2,n):
        if n % i == 0:
            return False
    else:
        return True
    #======================End=================================

    
def goldbach_conjecture(num):
    """ 哥德巴赫猜想, 接收一个不小于4的正整数为参数。
    当参数为不小于4的偶数时,将其分解为两个素数的加和,按小数+数的格式输出。
    有多种组合时全部输出,但不输出重复的组合,例如输出8=3+5,不输出8=5+3。
    参数为奇数或小于4时,输出'Data error!'
    """
    #====================Begin===================================
    # 补充你的代码
    if num %2 ==0 and num >= 4:
        for i in range(num // 2+1):
            if is_prime(i) and is_prime(num - i):
                print(f"{num}={i}+{num-i}")
    else:
        print('Data error!')
    #======================End=================================

if __name__ == '__main__':
    positive_even = int(input())        # 输入一个正数
    goldbach_conjecture(positive_even)

 

  • 14
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值