5.23

题目描述】

输出n(0<n)行杨辉三角形,n由用户输入。

【源代码程序】

def generate_pascal_triangle(n):

    triangle = []

    for i in range(n):

        # 初始化当前行

        row = [1]

        if i > 0:

            # 前一行的数值

            prev_row = triangle[i - 1]

            # 计算当前行的数值

            for j in range(1, i):

                row.append(prev_row[j - 1] + prev_row[j])

            row.append(1)

        # 添加当前行到三角形中

        triangle.append(row)

    return triangle

 

def print_pascal_triangle(triangle):

    # 打印杨辉三角形

    for row in triangle:

        for num in row:

            # 每个数占5位,右对齐

            print(f"{num:5}", end='')

        print()

 

# 输入行数n

n = int(input("请输入行数n(大于0):"))

 

# 生成杨辉三角形

triangle = generate_pascal_triangle(n)

 

# 打印杨辉三角形

print_pascal_triangle(triangle)

【运行测试

 

筛法求素数

题目描述】

用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。

【源代码程序】

def sieve_of_eratosthenes(n, m):

    # 初始化标记数组,True表示该位置的数是素数

    primes = [True] * (m + 1)

    primes[0] = primes[1] = False  # 0和1不是素数

 

    # 使用筛法找出素数

    for i in range(2, int(m ** 0.5) + 1):

        if primes[i]:

            # 将i的倍数标记为非素数

            for j in range(i * i, m + 1, i):

                primes[j] = False

 

    # 输出[n,m]范围内的素数

    count = 0  # 计数器,用于控制输出格式

    for i in range(n, m + 1):

        if primes[i]:

            print(f"{i:5}", end='')  # 每个素数占5位,右对齐

            count += 1

            if count % 5 == 0:  # 每行5个数字

                print()

    if count % 5 != 0:  # 输出最后一行不足5个数字的情况

        print()

 

# 输入整数n和m

n, m = map(int, input().split())

 

# 求解[n,m]范围内的所有素数并输出结果

sieve_of_eratosthenes(n, m)

【运行测试

 

posted on 2024-05-23 21:47  Daniel350  阅读(1)  评论(0编辑  收藏  举报