shigure_takimi
发表于 2018-1-14 05:34:40
本帖最后由 shigure_takimi 于 2018-1-14 05:57 编辑
#方法3,似乎更合乎题意。
#但又感觉本质上和方法2上一样的复杂程度。。
list1 =
index = 0
while index < len(list1)-1:
for i in list1:
if i % list1 == 0:
list1.remove(i)
index += 1
print(list1)
ouyunfu
发表于 2018-1-14 06:25:44
求解
ouyunfu
发表于 2018-1-14 06:55:41
list1 =
list2 = []
list3 = []
for i in list1:
for j in list1:
if i > j and i%j == 0:
list2.extend()
for item in list2:
if not item in list3:
list3.append(item)
result = []
for x in list1:
if not x in list3:
result.append(x)
print(result)
coopr
发表于 2018-1-14 19:12:01
list1 = [3, 7, 10, 11, 12, 14,
15, 17, 18, 19, 20, 21, 22, 24,
26, 27, 28, 30, 32, 34, 35, 36,
39, 41, 42, 43, 45, 48, 49, 53,
64, 74, 78, 80, 88, 90, 91, 95,
96, 103, 107, 116, 142, 148, 152,
153, 158, 163, 171, 173, 174, 175,
176, 179, 181, 188, 190, 201, 204, 207,
216, 218, 222, 231, 235, 239, 248, 250,
251, 253, 258, 262, 265, 278, 292, 295,
296, 301, 305, 313, 317, 320, 326, 332,
334, 347, 355, 357, 358, 363, 365, 366,
368, 375, 377, 381, 391, 414, 417, 426,
428, 437, 438, 445, 453, 459, 466, 474,
476, 477, 489, 494]
list2 = []
n = len(list1)
for i in range(0,n):
for each in list1:
if each != list1:
yushu = list1%each
if yushu == 0 and list1 not in list2:
list2.append(list1)
for each in list2:
if each in list1:
list1.remove(each)
print(list1)
lihw
发表于 2018-1-15 14:01:32
list1=[3, 7, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 30,
32, 34, 35, 36, 39, 41, 42, 43, 45, 48, 49, 53, 64, 74, 78, 80, 88,
90, 91, 95, 96, 103, 107, 116, 142, 148, 152, 153, 158, 163, 171,
173, 174, 175, 176, 179, 181, 188, 190, 201, 204, 207, 216, 218,
222, 231, 235, 239, 248, 250, 251, 253, 258, 262, 265, 278, 292,
295, 296, 301, 305, 313, 317, 320, 326, 332, 334, 347, 355, 357,
358, 363, 365, 366, 368, 375, 377, 381, 391, 414, 417, 426
, 428, 437, 438, 445, 453, 459, 466, 474, 476, 477, 489, 494]
list2= list1.copy()
list3=[]
for i in list1:
for j in list2:
if i>j:
if i%j==0:
if i in list2:
list2.remove(i)
if i<j:
if j%i==0:
list2.remove(j)
print(list2)
wojiaodabai
发表于 2018-1-15 15:29:19
list1 =
new1=[]
new2=[]
new3=[]
for i in list1:
for j in list1:
if i==j:
new1.append(i)
elif i%j ==0:
new2.append(i)
for i in list1:
if i not in new2:
new3.append(i)
print(new3)
做的有点麻烦,想看看大神们有没有简单的方法啊!
shigure_takimi
发表于 2018-1-15 18:20:00
jerryxjr1220 发表于 2018-1-12 15:52
大神写的两个方法都看不懂。
jerryxjr1220
发表于 2018-1-16 11:18:53
shigure_takimi 发表于 2018-1-15 18:20
大神写的两个方法都看不懂。
方法一其实就是利用集合相减再求交集,用了reduce函数合并成一行输出。
方法二就是用的标记法,和标记法求质数的原理一样,优势是效率非常高,你可以进行测试。
Elastcio
发表于 2018-1-16 13:24:24
list1 =
for each in list1:
for i in range(list1.index(each)):
if each % list1 == 0 and each != list1:
list1.remove(each)
print("remove %d"%each)
break
print("list1=",list1)
成才
发表于 2018-1-17 13:50:35
编程新血 发表于 2018-1-12 20:19
'''一个2重循环'''
list1 =
哇 ,这个思路有意思
sunnychou
发表于 2018-1-17 15:26:58
list1 = [3, 7, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 24, 26,
27, 28, 30, 32, 34, 35, 36, 39, 41, 42, 43, 45, 48, 49, 53, 64, 74,
78, 80, 88, 90, 91, 95, 96, 103, 107, 116, 142, 148, 152, 153, 158,
163, 171, 173, 174, 175, 176, 179, 181, 188, 190, 201, 204, 207, 216,
218, 222, 231, 235, 239, 248, 250, 251, 253, 258, 262, 265, 278, 292,
295, 296, 301, 305, 313, 317, 320, 326, 332, 334, 347, 355, 357, 358,
363, 365, 366, 368, 375, 377, 381, 391, 414, 417, 426, 428, 437, 438,
445, 453, 459, 466, 474, 476, 477, 489, 494]
list2 = list1
for i in list1:
j = 2
while j < len(list1):
c = j * i
if c in list2:
list2.remove(c)
j += 1
print(list2)
鱼油127327
发表于 2018-1-31 13:17:42
list1 =
def fliter(a_list):
'''传入一个列表,用两重循环过滤掉不要的数据'''
for each in list1:
for one in list1:
if one!=each and one % each == 0:
list1.remove(one)
return list1
#调用两次fliter()函数确保没有漏网之大甲鱼(๑◔◦◔๑)
list1=fliter(list1)
print(fliter(list1))
应该是最容易实现的算法吧😂新手写的不好大神轻喷
ciager
发表于 2018-1-31 13:56:12
list1 =
for i in list1:
for j in list1:
if j % i == 0 and i != j:
list1.remove(j)
print(list1)
dunhee
发表于 2018-2-8 16:09:17
def f(L):
for i in range(len(L)-1):
if L == -1: continue
for j in range(i+1, len(L)):
if L % L == 0:
L = -1
return
L =
print(f(L))
renze
发表于 2018-3-6 16:09:29
list1 =
length = len(list1)-1
for i in range(length):
for j in range(length-i):
if list1 == 0 :
continue
if list1 % list1 == 0 :
list1 = 0
list2 = []
for i in range(len(list1)):
if list1 != 0 :
list2.append(list1)
print(list2)
凌九霄
发表于 2018-3-30 22:54:28
import random
test = random.sample(, 30)
print("\n待处理的随机数组:")
print(test)
def reducenum(n):
result = []
while n not in :# 循环保证递归
for index in range(2, n + 1):
if n % index == 0:
n //= index# n 等于 n/index
if n == 1:
result.append(index)
else:# index 一定是素数
result.append(index)
break
return result
for i in sorted(test, reverse=True):
zys = reducenum(i)
for j in zys:
if j != 1 and j != i:
if j in test:
test.remove(i)
break
print('\n处理后的数组:')
print(test)
Wangzy1025
发表于 2018-5-11 14:38:51
list2 = []
for each in list1:
n = list1.index(each)
for i in range(n):
if not each % list1:
list2.append(each)
break
else:
continue
for each in list2:
list1.remove(each)
咕咕鸡鸽鸽
发表于 2019-3-26 12:45:41
def fun139(list1):
list2 = []
for i in list1:
for j in list1:
if not i%j and i != j:
list2.append(i)
break
return sorted(list(set(list1) - set(list2)))
hj5818
发表于 2019-4-8 23:12:02
list1 =
for each in list1[:]:
for num in range(list1.index (each)):
if each % list1 ==0:
list1.remove(each)
break
print (list1)
verauxu
发表于 2020-1-3 20:48:00
list1 =
for i in list1:
for j in range(2,167):
m = i * j
if m in list1:
list1.remove(m)
print(list1)
print(len(list1))