python作业(二)

1.输入两个整数a(大于等于1且小于等于9)和n(大于等于1且小于等于80),编程求得并输出下

面等式的值

s=input()
ns=s.split()
a=ns[0]
n=ns[1]
lst=[]
for i in range(1,int(n)+1):
    lst.append(a*i)
lst.reverse()
sum=int(lst[0])
for j in lst[1:]:
    sum-=int(j)
print(sum)

2.

编写一个程序,以2位数字X,Y作为输入,生成一个二维列表。列表的第i行和第j列中的元素值是i*j。

注意:i= 0,1 . .,X - 1;    j = 0, 1,..,Y-1

x,y=eval(input())
lst=[]
lst1=[]
for i in range(x):
    for j in range(y):
        lst1.append(i*j)    
    lst.append(lst1)
    lst1=[]
print(lst) 

3.假设电话号码的模式为:3个数字,一个短横线,4个数字,一个短横线和4个数字。如:186-7123-4567。编写程序,用以检查输入的字符串是否匹配电话号码模式,若匹配返回True,否则返回False 

s=input()
n1=s[0:3]
n2=s[3]
n3=s[4:8]
n4=s[8]
n5=s[9:13]
if n1.isdigit() and n2=="-" and n3.isdigit() and n4=="-" and n5.isdigit():
    print(True)
else:
    print(False)    

4.证明在偶数n以内,歌德巴赫猜想是成立的。歌德巴赫猜想是:任何一个充分大的偶数都可以表示为两个素数之和。例如,4=2+2   6=3+3   8=3+5  50=3+47 

def is_sushu(a):
    for i in range(2,a):
        if a % i == 0:
            return False
    else:
        return True
n=int(input())
for i in range(4,n+1,2):
    for j in range(2,i):
        if is_sushu(j)==True and is_sushu(i-j)==True and j <= (i-j):
            print(f"{i}={j}+{i-j}") 
            '字符串模板'
            break

5.求整数n以内(含n)的全部亲密数。

说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,A不等于B,则将正整数A和B称为亲密数。

1不和其他数形成亲密数。

编写函数sumElem(),实现统计一个数字的因子之和(包括1,不包括A本身)

 

def sumElem(a):
    sum=1
    for i in range(2,a):
        if a % i == 0:
            sum+=i
    return sum    
def is_sushu(a):
    for i in range(2,a):
        if a % i == 0:
            return False
    else:
        return True    
n=int(input())
d={}
temp=[x for x in range(4,n+1) if is_sushu(x)==False]
for j in temp:
    k=sumElem(j)
    if j==k or k not in temp:
        continue 
    if sumElem(k)==j and j < k :
        d[j]=k
        temp.remove(j)       
for m,n in d.items():
    print(m,n)

 

 

 

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值