练习2.10

质数判断

num=int(input())
if num>1:
    for i in range(2,num):
        if num%i==0:
            print('不是质数')
            break
    else:
        print('是质数')
else:
    print('不是质数')

输出指定范围内的素数

a=int(input('请输入左区间:'))
b=int(input('请输入右区间:'))
for i in range(a,b+1):
    if i>1:
        for j in range(2,i):
            if i%j==0:
                break
        else:
            print(i)

阶乘实例

n=int(input())
s=1
for i in range(1,n+1):
    s=s*i
print(s)
num=int(input('请输入一个数字'))
factorial = 1
if num < 0:
    print("抱歉,负数没有阶乘")
elif num == 0:
    print("0 的阶乘为 1")
else:
    for i in range(1, num + 1):
        factorial = factorial * i
    print("%d 的阶乘为 %d" % (num, factorial))
    print(f'{num}的阶乘为{factorial}')

九九乘法表

for i in range(1, 10):
    for j in range(1, i+1):
        print('{}x{}={}\t'.format(j, i, i*j), end='')
    print()
for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{j}*{i}={j*i}\t',end='')
    print()

斐波那契数列

n=int(input())
n1 = 0
n2 =1
print(f'{n1} {n2} ',end='')
for i in range(1,n-1):
    n3=n1+n2
    n1=n2
    n2=n3
    print(f'{n3} ',end='')
nterms = int(input("你需要几项?"))
# 第一和第二项
n1 = 0
n2 = 1
count = 2

# 判断输入的值是否合法
if nterms <= 0:
    print("请输入一个正整数。")
elif nterms == 1:
    print("斐波那契数列:")
    print(n1)
else:
    print("斐波那契数列:")
    print(n1, ",", n2, end=" , ")
    while count < nterms:
        nth = n1 + n2
        print(nth, end=" , ")
        # 更新值
        n1 = n2
        n2 = nth
        count += 1

阿姆斯特朗数

um=int(input())
sum=0
n=len(str(num))
temp = num
while temp > 0:
    digit = temp % 10 #取出最低位的数字  
    sum += digit ** n #累加最低位的n次方
    temp //= 10       #继续取出剩余的数
#562-->2-->2的3次-->56-->56>0-->6的3次-->5-->5的3次-->0 结束

# 输出结果
if num == sum:
    print(num, "是阿姆斯特朗数")
else:
    print(num, "不是阿姆斯特朗数")

十进制转二进制、八进制、十六进制

dec = int(input("输入数字:"))

print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))

binary_number = '101010'
decimal_number = int(binary_number, 2)  # 二进制转换为十进制
octal_number = oct(decimal_number)      # 十进制转换为八进制
hexadecimal_number = hex(decimal_number)  # 十进制转换为十六进制

print('二进制数:', binary_number)
print('转换为十进制:', decimal_number)
print('转换为八进制:', octal_number)
print('转换为十六进制:', hexadecimal_number)

ASCII码与字符相互转换

c = input("请输入一个字符: ")

# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码: "))

print(c, " 的ASCII 码为", ord(c))
print(a, " 对应的字符为", chr(a))

最大公约数算法

def gcd(a, b):
    while b:
        a, b = b, a % b
    return a
num1 = 12
num2 = 18
print(f"最大公约数: {gcd(num1, num2)}")  # 输出: 最大公约数: 6



import math
num1 = 12
num2 = 18
print(f"最大公约数: {math.gcd(num1, num2)}")  # 输出: 最大公约数: 6


def hcf(x, y):
    """该函数返回两个数的最大公约数"""
    # 获取最小值
    if x > y:
        smaller = y
    else:
        smaller = x

    for i in range(1, smaller + 1):
        if ((x % i == 0) and (y % i == 0)):
            hcf = i

    return hcf
# 用户输入两个数字
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
print(num1, "和", num2, "的最大公约数为", hcf(num1, num2))



a=int(input("输入第一个数字: "))
b=int(input("输入第二个数字: "))
if b>a:
    temp = a
    a = b
    b= temp
while b>0:
   c=a%b
   a=b
   b=c
print(a)

最小公倍数算法

def lcm(x, y):
    #  获取最大的数
    if x > y:
        greater = x
    else:
        greater = y

    while (True):
        if ((greater % x == 0) and (greater % y == 0)):
            lcm = greater
            break
        greater += 1

    return lcm
# 获取用户输入
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))

print(num1, "和", num2, "的最小公倍数为", lcm(num1, num2))


def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

# 示例
num1 = 12
num2 = 18
print(f"最大公约数: {gcd(num1, num2)}")  # 输出: 最大公约数: 6

c=num1*num2//gcd(num1, num2)
print(c)
a=int(input("输入第一个数字: "))
b=int(input("输入第二个数字: "))
s=a*b
if b>a:
    temp = a
    a = b
    b= temp
while b>0:
   c=a%b
   a=b
   b=c
m=s//a
print(m)

你可能感兴趣的:(python,开发语言)