人生苦短 我学python
人生苦短 我学python
人生苦短 我学python
求最大公约数和最小公倍数,望采纳!
import sys
def gcd(a, b): #最大公约数
if a % b == 0:
return b
else :
return gcd(b, a % b)
def lcd(a, b): # 求最小公倍数
return (a * b // gcd(a, b))
# 获取用户输入
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
print( num1,"和", num2,"的最大公约数为", gcd(num1, num2))
print( num1,"和", num2,"的最小公倍数为", lcd(num1, num2))
水仙花数,望采纳
nums = []
for num in range(100,1000):
a = num // 100
b = num // 10 % 10
c = num % 100 % 10
if num == a**3 + b**3 + c**3:
nums.append(num)
len = len(nums)
for i in nums[0:len - 1]:
print(i,end =',')
print(nums[-1],end = '')
print(" 是水仙花数")
四道都认真写了,望采纳:
第一题
def gcd(num1,num2):
for i in range(min(num1,num2), 0, -1):
if num1%i==0 and num2%i==0:
return i
def lcd(num1,num2):
for i in range(max(num1,num2), num1*num2+1):
if i%num1==0 and i%num2==0:
return i
n1 = int(input())
n2 = int(input())
print('最大公约数:',gcd(n1, n2))
print('最小公倍数:',lcd(n1, n2))
第二题:
def myfunc(x,n):
res = 0
for i in range(1,n+1):
res += int(str(x)*i)
return res
print(myfunc(2,6)) #out: 246912
# 也可以写成如下形式:
def myfunc(x,n):
return sum(map(int,[str(x)*i for i in range(1,n+1)]))
print(myfunc(2,6))
第三题:
res = []
for i in range(100,1000):
x = list(str(i))
if int(x[0])**3 + int(x[1])**3 + int(x[2])**3 == i:
res.append(i)
print('100~999之间的水仙花数有:',res)
#Out: 100~999之间的水仙花数有: [153, 370, 371, 407]
#也能写成一行:
list(map(int,filter(lambda x:sum(map(lambda x:int(x)**3, list(x))) == int(x), map(str,range(100,1000)))))
#[153, 370, 371, 407]
第四题:
def fact(n):
res = 1
for i in range(1,n+1):
res *= i
return res
def cos(x):
res = 1
n = 1
e = float(input('e = '))
while abs(x**(n*2)/fact(2*n))>e:
res += (-1)**n * x**(n*2) / fact(2*n)
n += 1
return res + (-1)**n * x**(n*2) / fact(2*n)
print(cos(-3.14))
逻辑搞清楚,有难度么
第一题
Python计算最大公约数和最小公倍数代码# -*- coding: utf-8 -*-
# @Time:2020/8/18 0:02
# @Author:hanqi
# FileName:最大公约数和最小公倍数.py
# Software:PyCharm
def hcf(u, v):
"""该函数返回两个数的最大公约数"""
# 交换u,v,保证u>v
if v > u:
u, v = v, u
t = u % v
while (t != 0):
u, v, t = v, t, u % v
return v
def lcd(u, v):
"""该函数返回两个数的最小公倍数"""
return u * v // hcf(u, v)
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第二个数字:"))
print("最大公约数", hcf(num1, num2))
print("最小公倍数", lcd(num1, num2))
```python