我应该写一个python程序,用户在其中输入任何数字,它会告诉我这个数字是否可以写成等式后面4个连续素数的平方和,并给出这些数字:
(N1 * N1) + (N2 * N2) + (N3 * N3) + (N4 * N4) == N但是我不能使用:列表、函数、中断、导入数学等。
现在,我的代码看起来像这样:
N = int(input("Number: "))
import math
N1 = 2
N2 = 3
N3 = 5
N4 = 7
while True:
if (N1 * N1) + (N2 * N2) + (N3 * N3) + (N4 * N4) == N:
print(N1, N2, N3, N4)
break
X = N4 + 2
if X > N // 12:
print("false")
break
while True:
for A in range(3, int(math.sqrt(X) + 1), 2):
if X % A == 0:
primo = False
break
else:
primo = True
if primo:
N1 = N2
N2 = N3
N3 = N4
N4 = X
break
else:
X = X + 2但是我既不能使用break也不能使用import math。
发布于 2020-03-26 01:09:44
控制流的while条件使用示例:
N = int(input("Number: "))
n1,n2,n3,n4 = 2,3,5,7
while n1*n1 +n2*n2+n3*n3 +n4*n4 < N:
found_prime = False
t = n4
while not found_prime:
t = t+2
p = 3
found_prime = True
while p**2 <= t:
if t%p == 0:
found_prime = False
p+=2
#shift primes
n1,n2,n3,n4 = n2,n3,n4,t
if n1*n1 +n2*n2+n3*n3 +n4*n4 == N:
print(n1,n2,n3,n4, " == ", N)
else:
print("no 4 consecutive primes exists such that n1*n1 +n2*n2+n3*n3 +n4*n4 == N")https://stackoverflow.com/questions/60853505
复制相似问题