Monica_MTF 2023-02-09 21:00 采纳率: 73.9%
浏览 19
已结题

Python返回排序的素数

Python#394
在下面的代码中,函数isPrime()用来判断参数k是否为素数,是则返回True,否则返回False。
函数main()接收一个元组numbers作为参数,其中包含若干介于[0,9]区间的数字,要求返回这些数字能够组成的所有素数升序排列的列表,每个素数中都必须使用number中的数字,且每个数字在每个素数中只能使用一次。
例如,main((1,2,3,4))返回[1423,2143,2341,4231]。
替换下面的pass语句,完成要求的功能。
考点:选择结构与循环结构,排列

from itertools import permutations

def isPrime(k):
    if k in (2,3):
        return True
    if k%2 == 0:
        return False
    for i in range(3, int(k**0.5)+2,2):        #???
        if k%i ==0:
            return False
        return True

def main(numbers):
        pass

prime是素数的意思,k是isPrime()的一个参数,为啥有这个参数?但是这里为什么 "如果k在2到3里面,就返回True"?,如果模2等于0,那就是偶数,这里可以理解,i在(3,int(k**0.5)+2,2)范围循环,**0.5就是开方,但是为啥开方然后转整数又+2?元组转整数?还在3到2的中间?如果k模其中某个数为0,那就是偶数,返回False(咋不是模2了?)。
numbers参数是一个元组,然后结果返回的素数就是升序排列的,那应该就是用到permutations()排列函数了,重点在排列,题目要求返回列表,那就得return(list(permutations()))。

    return numbers    #返回主函数的参数
'''
答题错误!您的代码执行结果为:
(1, 2, 3, 4)
(3, 5, 7, 8)
(1, 3, 5, 7)
'''

那也就是说,用这个数字,先组合出可能的数字,然后判断是否为素数,符合条件就返回。

def main(numbers):
    if isPrime=='True':
        combinations(k)
        permutations(k)
    return list(k)
'''
代码不符合题目要求,提交失败。
要求不能使用list函数。
'''

好吧,是不能使用list()函数的……

  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-09 22:02
    关注

    下面是一个完整的示例代码:

    
    from itertools import permutations
    
    def isPrime(k):
    if k in (2,3):
    return True
    if k%2 == 0:
    return False
    for i in range(3, int(k**0.5)+2,2):
    if k%i ==0:
    return False
    return True
    
    def main(numbers):
    res = []
    numbers = [str(x) for x in numbers]
    perms = [int("".join(p)) for p in permutations(numbers) if p[0] != "0"]
    for num in perms:
    if isPrime(num):
    res.append(num)
    return sorted(res)
    

    例如,main((1,2,3,4)) 将返回 [1423, 2143, 2341, 4231]。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 创建了问题 2月9日

悬赏问题

  • ¥20 关于#c++#的问题:水果店管理系统
  • ¥30 dbLinq最新版linq sqlite
  • ¥20 对D盘进行分盘之前没有将visual studio2022卸载掉,现在该如何下载回来
  • ¥15 完成虚拟机环境配置,还有安装kettle
  • ¥15 2024年全国大学生数据分析大赛A题:直播带货与电商产品的大数据分析 问题5. 请设计一份优惠券的投放策略,需要考虑优惠券的数量、优惠券的金额、投放时间段和投放商品种类等因素。求具体的python代码
  • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗
  • ¥15 用matlab写代码
  • ¥30 motoradmin系统的多对多配置
  • ¥15 求组态王串口自定义通信配置方法或代码?
  • ¥15 实验 :UML2.0 结构建模