利用python语言 17. 输出1000-2000之间所有素数之和。 18. 输出500-700之间所有合数之和。 19. 求出[1000,9999]区间内具有如下特点的数:该数的平方根恰好就是其本身中间的两位数字。例如,2500的平方根为50,而50恰为2500中间的两位数字。试找出所有这样的四位数并求出它们的和。 20. 一个两位的正整数,如果将它的个位数字与十位数字对调,则产生另一个正整数,我们把后者叫作前者的对调数。现给定一个两位的正整数,请找到另一个两位的正整数,使得这两个两位正整数之和等于它们各自的对调数之和。例如,12+32=23+21。编程,把具有这种特征的一对对两位正整数都找出来。下面是其中的一种结果: 56+(10)=(1)+65 56+(65)=(56)+65 56+(21)=(12)+65 56+(76)=(67)+65 56+(32)=(23)+65 56+(87)=(78)+65 56+(43)=(34)+65 56+(98)=(89)+65 56+(54)=(45)+65
题主,这是作业吗? 您是思路不会还是都不会
19
s = 0
for n in range(1000,10000):
if (n//10%100)**2==n:
print(n)
s += n
print("和是",s)
如果对你有帮助,可以点击我这个的回答右上方的【采纳】按钮,给我个采纳吗,谢谢。
20
for x in range(10,100):
if x%10!=0:
x2 = x//10+x%10*10
for y in range(10,100):
if y%10!=0:
y2 = y//10+y%10*10
if x+y==y2+x2:
print(f"{x}+{y}=={y2}+{x2}")
17
def isp(n):
for i in range(2,n):
if n%i==0:
return False
return True
s = 0
for n in range(1000,2001):
if isp(n):
s+=n
print("s=",s)
if isp(n):
改成
if not isp(n):
就是18 有合数之和
def isp(n):
for i in range(2,n):
if n%i==0:
return False
return True
s = 0
for n in range(500,701):
if not isp(n):
s+=n
print("s=",s)
17. 输出1000-2000之间所有素数之和
count = 0
for n in range(1000,2000):
for i in range(1000,n):
if n%i==0:
break
if i==n-1:
print(n,end=" ")
count+=n
break
print(" ")
print("count="+str(count))
18. 输出500-700之间所有合数之和
count = 0
for n in range(500,700):
for i in range(500,n):
if n%i==0:
print(n,end=" ")
count+=n
if i==n-1:
break
print(" ")
print("count="+str(count))