带带刚入门的自学选手吧!!

3.编写程序,从键盘输入两个正整数,计算两个数的最大公约数和最小公倍数。~
4. 编写程序,从键盘输入一个整数并判断该数的类别:其因数之和等于数字本身的数称为完全数,比数字本身大的数称为丰沛数,比数字本身小的数称为不足数。

3题:
m,n=eval(input())
for i in range(1,min(m,n)+1):
if m%i==0 and n%i==0:
gys=i
gbs=m*n//gys
print("{}和{}的最大公约数是{},最小公倍数是{}".format(m,n,gys,gbs))

img

4题:
个人认为该题目内容有错,其“因数之和”应该“比自身小的因数之和”,否则题目中测试数据均为丰沛数。修改后程序为:
num=int(input())
s=0
for i in range(1,num):
if num%i==0:
s+=i
if s==num:
print(num,'是完全数')
elif s>num:
print(num,'是丰沛数')
else:
print(num,'是不足数')

img