Python-素数加法为偶数

标签 python primes

这是我的教授给我的作业。我不知道从哪里开始或做什么! 重点是使用循环来解决这个问题,我可以做循环,但这让我大吃一惊。

偶数和素数。

素数是以 1 和它本身作为唯一约数的数。 2、3、5、7、11 是前几个。注意 “是素数”纯粹是一个乘法条件——它与加法无关。所以可能是 令人惊讶的是,如果我们开始列出偶数,它们似乎是两个素数的和(加!)。 4 = 2 + 2、6 = 3 + 3、8 = 5 + 3、10 = 3 + 7、12 = 7 + 5、14 = 7 + 7、16 = 13 + 3、...

情况总是如此吗?每个偶数都可以写成两个素数之和吗?

  1. 编写 is_prime(n) 函数。 它应该接受正整数 n>1 作为输入,并输出 True 或 False,具体取决于 n 是否存在 一个素数。使用一个循环来执行此操作,检查对于任何整数 d,1 < d < sqrt(n),d 是否能整除 n。 我建议使用 while 循环——仔细考虑循环的条件,以及何时要更改 这是循环内的条件。 (根据您的条件使用 bool 值)。
  2. 编写 prime_sum(n) 函数。 它应该接受偶数 n>1 作为输入,并通过循环搜索素数 p & q,其中 p + q = n。 提示:从 p = 3 开始。如果 (p) 和 (n-p) 是素数,则完成。如果不是,请设置 p+=2 并重试。 确保您不会永远搜索!
  3. 主要。
    • 向用户询问偶数 n。不断询问他们,直到他们给你一个正偶数。
    • 搜索被加数 p 和 q,然后将它们打印出来(如果存在)或说不存在。
    • 询问用户是否愿意尝试另一个事件,并让他们继续,直到他们退出。
<小时/>

我不知道我可以编辑这个! :) 这就是我到目前为止所拥有的。我还没有测试它来调试它,因为我想把它全部搞清楚,当错误出现时我会解决它们,但如果你看到任何直接的问题,请告诉我。

def is_prime(n):
    d=2
    while n>1 and d<n**0.5:
        if n%2==0:
            c=False
        d+=1
    return c

def prime_sum(n):
    p=3
    while n>1:
        q=n-p
        if q<=0:
            p+=2
            q=n-p
            is_prime(q)
        else:
            is_prime(q)
            is_prime(p)
    while True:
        print("The prime summands of", n, "are", p, "and", q)
    while False:
        print("There are no prime summands of", n)

def main():
    n=eval(input("Gimme an even number please: "))
    while True:
        n=eval(input("That is not a positive even number. Try again: "))
    #not sure how to combine yet, but I am still finishing.
    #will edit again when I have it all down.

最佳答案

不要担心任务的总体情况会很困难。只要按照教授的分解一步一步来就可以了。

关于Python-素数加法为偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5466977/

相关文章:

javascript - 实现 Lucas–Lehmer 素性检验的问题

algorithm - Pollard Rho 分解方法实现

python - 替换损坏的spyder.ini 文件(使用 winpython 64)

python - Pandas - Groupby 或将多个数据帧剪切到垃圾箱

python - 如何在 Django/Google App Engine 中制作日志颜色?

java - 我执行此算法以计算前 N 个素数有什么问题?

无法用 C 中的 12 位数字计算质因数

java - 覆盖 hashCode() 时使用更大的素数作为乘数

python - 如何打印单位矩阵的行

python - 通过仅下载网页的相关部分来抓取标题