Python问题,用列表,元组,集合之类的解决

存储20个100-500以内的随机整数,编写程序找出列表中不能被10以内素数整除的元素。


import random
ls=[random.randint(1000,5000) for i in range(20)]
ts=(2,3,5,7)
l1=[0]*len(ls)
for i in range(len(ls)):
for t in ts:
if ls[i] % t==0:
l1[i]=1
l2=[]
for i in range(len(ls)):
if l1[i]==0:
l2.append(ls[i])
print("生成的20个1000~5000的随机数是:")
print(ls)
print("其中不能被10以内素数整除的数是:")
print(l2)
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7518236
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python编程基础:生成一个在1- 100范围以内50个数字整数列表,查找列表中相乘等于1008的3个数字。
  • 同时,你还可以查看手册:python- 定义扩展类型:已分类主题- 终结和内存释放 中的内容
  • 除此之外, 这篇博客: Python列表循环左移中的 题目:编写程序生成一个包含15个介于1到100 之间随机整数的列表,将其循环左移5个元素。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 方法1:使用切片,简单易理解,速度最快,可同时实现循环左移(k>0)和右移(k<0)。

    def demo(lst, k):
        return lst[k:] + lst[:k]
    

    代码实现:

    import random
    a=[random.randint(1,100) for i in range(15)]
    print(a)
    def demo (a, n):
        return (a[n:] + a[:n])     #n之后的部分连接n之前的部分
    tmp = a[:]
    print(demo(tmp,5))
    

    运行结果:
    在这里插入图片描述

    方法2:特点是直接、容易理解,缺点是速度慢,只能实现循环左移。

    def demo(lst, k):
        temp = lst[:]
        for i in range(k):
            temp.append(temp.pop(0))
        return temp
    

    代码实现:

    import random
    a=[random.randint(1,50) for i in range(15)]
    print(a)
    for i in range(5):
        a.append(a.pop(0))
    print(a)
    

    方法3
    代码实现:

    import random
    a=[random.randint(1,50) for i in range(15)]
    print(a)
    for i in range(5):
        a.insert(len(a),a[0])
        a.remove(a[0])
    print(a)
    
  • 您还可以看一下 CSDN就业班老师的Python全栈工程师特训班第十六期-直播回放课程中的 Python全栈工程师特训班第十六期-第一周-10小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    导入random模块

    import random

    生成20个100-500之间的随机整数

    random_integers = [random.randint(100,500) for i in range(20)]

    定义一个函数,判断一个数是否为素数

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

    定义一个空集合

    result = set()

    遍历随机整数列表,如果不能被10以内的素数整除,则将其添加到result集合中

    for number in random_integers: can_divide = False for i in range(2, 10): if is_prime(i) and number % i == 0: can_divide = True break if not can_divide: result.add(number)

    输出结果

    print("随机整数列表:", random_integers) print("不能被10以内的素数整除的整数:", result)