Python基础练习:素数判断、最大公约数与最小公倍数及三角形打印

需积分: 0 15 下载量 151 浏览量 更新于2024-08-04 收藏 2KB MD 举报
在本文档中,提供了三个Python编程练习题及其解答,针对不同领域的基础概念进行实战训练。以下是每个练习题的详细解释和代码实现: 1. **练习1:判断素数** - 这个题目要求编写程序来检查一个给定的正整数是否为素数。素数是指除了1和其本身以外,没有其他正因数的自然数。参考答案使用了Python的`math`库来找到数字的平方根,然后遍历从2到这个平方根的所有整数,如果发现可以整除该数,则说明它不是素数。最后根据结果输出相应的判断信息。 ```python from math import sqrt num = int(input('请输入一个正整数:')) end = int(sqrt(num)) is_prime = True for x in range(2, end + 1): if num % x == 0: is_prime = False break if is_prime and num != 1: print('%d是素数' % num) else: print('%d不是素数' % num) ``` 2. **练习2:计算最大公约数和最小公倍数** - 本题涉及两个正整数的最大公约数(GCD)和最小公倍数(LCM)。最大公约数是两个数共有的最大因数,而最小公倍数是能同时被这两个数整除的最小数。参考代码首先检查较大的数是否大于较小的数,然后通过迭代查找两个数的公共因子,最终确定GCD和计算LCM。 ```python x = int(input('x=')) y = int(input('y=')) # 交换较大和较小数 if x > y: x, y = y, x # 从较大数开始查找因子 for factor in range(x, 0, -1): if x % factor == 0 and y % factor == 0: print('%d和%d的最大公约数是%d' % (x, y, factor)) print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor)) break ``` 3. **练习3:打印三角形图案** - 最后一个练习是生成特定形状的三角形,如星号(*)排列。用户输入行数,程序会按照递增的行数顺序打印星号,并在每一行增加空格,以形成向下延伸的三角形。参考答案给出了从空格和星号组合来实现的简单代码。 ```python row = int(input('请输入行数:')) for i in range(row): for j in range(i + 1): print('*', end='') print() # 或者更简洁地生成倒三角形 for i in range(row): print(' ' * (row - i - 1) + '*' * (i + 1) * 2) ``` 以上三个Python编程练习涵盖了基础的数据输入处理、循环控制和算法应用,有助于巩固对Python语言的理解和基本逻辑结构的掌握。通过实际操作这些代码,程序员可以提升编程技能,并更好地理解如何利用循环和条件语句来解决实际问题。