python 函数 放过我吧

img

img

img

img

人生苦短 我学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