[python]已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数。

本文介绍了获取素数的不同方法,包括列表表达式、循环和函数实现。重点探讨了如何高效找到乘积为给定正整数的两个质数,提出了从查找最小质因数着手的优化策略。
摘要由CSDN通过智能技术生成

(本人蒟蒻,dalao勿喷)需要代码往下翻,最后的代码最简洁喔~

一、rt,首先我们要知道如何获得素数:

1、使用列表表达式,这样获得的是素数的列表

sushu=[p for p in range(2, 100) if 0 not in [p%d for d in range(2, int(p**0.5)+1)]]
print(sushu)

2、使用循环,这样获得的是各个单独的数(当然也可以使用append变成列表)

for p in range(2,a):
    if 0 not in [p%d for d in range (2,int(p**0.5)+1)]:
        print(p)

3、还可以使用函数逐个检查

def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

二、如何获取乘积为输入的正整数a的两个质数:

1、新手很可能会利用循环嵌套,嵌套判断,最后把乘积是正整数a的两个数找出来,输出最大的那一个

a=int(input())
for p in range(2,a):
    if 0 not in [p%d for d in range (2,int(p**0.5)+1)]:
        for q in range(2, a):
            if 0 not in [q % d for d in range(2, int(q ** 0.5) + 1)] :
                if p*q
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值