我想创建一个函数,按以下顺序打印列表中的数字:
-能被0和1整除的数字
-能被素数整除的数字(所有数字能被2整除,然后数字能被3整除,等等)
我的代码前面有两个函数。基本的“max”函数和“prime_numbers”函数,打印最大给定数字的素数,例如素数 (50)。两者都工作正常。
这是我遇到问题的函数部分:
if max(x) >= 2:
divisors = prime_numbers(maks(x))
for i in divisors:
sel = [x % i == 0 for x in i]
result.append([i for i in sequence if sequence in sel])
sequence = [i for i in sequence if i not in sequence]
For 循环一团糟。我想做的是我在 R 中编写相同函数时所做的事情。
sel <- !as.logical(sequence %% i)
result <- c(result,sequence[sel])
sequence <- sequence[!sel]
“Sequence”已在代码中声明,它包含列表中大于或等于 2 的数字。 'Result' 也被声明,并且它包含小于 2 的数字。
我想迭代除数 (prime_numbers) 并且:
- “sel”包含该数字是否能被给定除数整除的逻辑答案
- 我想将“序列”中可整除的数字(sel 中的 TRUE 值)附加到先前的“结果”变量。
- 我想删除可整除且已附加到“序列”中的“结果”的数字,以便可以迭代另一个除数。
我对 R 比对 Python 更熟悉,而且 R 更容易。我尝试用列表理解做一些事情,但我不太理解它。
最佳答案
这应该可以解决问题:
# result and sequence are defined higher
# and are lists
if max(x) >= 2:
divisors = prime_numbers(maks(x))
for i in divisors:
result += [x for x in sequence if x % i == 0]
作为您回答的评论,我编辑了我的答案,这应该可以工作
关于python - 在 Python 中打印可被素数整除的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096722/