python - 在 Python 中打印可被素数整除的数字

标签 python

我想创建一个函数,按以下顺序打印列表中的数字:

-能被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/

相关文章:

python - 使用 owlready2 删除个人

python - 将 Pandas DataFrame 定义为复合 bool 条件

python - 在 Django Celery 中,如何判断任务是否已异步执行

python - 寻找主要因素的差异

python - AWS CDK如何在网关lambda集成的请求模板中嵌入自定义java脚本

python - 尝试导入数据到MySQL时出现 "TypeError: not all arguments covered during string formatting"是什么原因?

python - 提高spark sql的并行性

python - X-PAYPAL-APPLICATION-ID 错误

python - 如何在应用程序退出时正确终止线程

python - discord.py:我想从消息中获取一组特定的数字,但我被卡住了