實現查找最大子list(無重複元素且任意兩個數無倍數關係)

1.解題思路

①先將父列表中的素數找出來;
②去掉列表中重複的元素;

2.源代碼
import math
import random
#判斷素數
def isPrime(n):
    data=int(math.sqrt(n)+1)
    if n<=1:
        return False
    for i in range(2,data):
        if n%i==0 and i<n:
            return False
    return True
#生成隨機列表
list=[]
for i in range(2000):
    m=random.randint(1,2000)
    list.append(m)
#求最大子列表函數
def my20000(list):
    mychildlist=[]
    for i in range(len(list)):
        if isPrime(list[i]) and (list[i] not in mychildlist):
            mychildlist.append(list[i])
    print(sorted(mychildlist))
#main函數
 if __name__=='__main__':
    my20000(list)   
3.運行結果
[2, 7, 11, 13, 17, 23, 31, 43, 53, 59, 61, 67, 71, 73, 79, 89, 97, 101, 103, 109, 127, 131, 137, 149, 151, 157, 163, 167, 173, 179, 199, 211, 229, 233, 239, 241, 251, 271, 277, 283, 293, 307, 311, 313, 331, 367, 383, 389, 401, 419, 421, 431, 439, 443, 449, 461, 463, 467, 487, 491, 503, 509, 521, 523, 547, 563, 569, 571, 577, 587, 593, 599, 613, 619, 631, 641, 643, 647, 653, 661, 683, 691, 701, 719, 733, 743, 751, 757, 761, 769, 773, 811, 821, 823, 829, 853, 881, 907, 929, 937, 947, 953, 967, 977, 983, 997, 1009, 1013, 1019, 1031, 1033, 1049, 1051, 1061, 1087, 1091, 1097, 1109, 1117, 1123, 1129, 1153, 1163, 1171, 1181, 1201, 1213, 1217, 1223, 1229, 1237, 1259, 1277, 1283, 1289, 1301, 1303, 1319, 1321, 1327, 1373, 1399, 1423, 1439, 1447, 1453, 1471, 1481, 1487, 1489, 1499, 1511, 1523, 1531, 1543, 1553, 1559, 1571, 1583, 1601, 1607, 1609, 1619, 1627, 1657, 1663, 1667, 1697, 1709, 1721, 1723, 1733, 1753, 1777, 1783, 1787, 1789, 1811, 1831, 1867, 1871, 1879, 1889, 1901, 1907, 1913, 1931, 1949, 1973, 1979, 1987, 1993, 1999]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章