求过程利用python语言

利用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))