Python编程:素数判断与水仙花数求解

需积分: 0 2 下载量 76 浏览量 更新于2024-08-03 收藏 73KB DOC 举报
"该文档包含了三个Python编程题目,旨在帮助大学生练习程序设计。第一个题目是编写一个函数`fun`,用于判断输入的整数是否为素数,利用math模块的sqrt函数优化了判断过程。第二个题目是寻找100到999之间的所有水仙花数,即各位数字立方和等于其本身的三位数。第三个题目要求编写一个程序,根据用户输入的年月日,计算这一天在当年中的天数。" 在Python编程中,这些题目涉及的关键知识点包括: 1. **素数判断**: - 素数是大于1且只有1和它自身两个正因数的自然数。在Python中,可以通过检查一个数n是否能被2到√n之间任意整数整除来判断其是否为素数。在提供的代码中,`fun`函数实现了这个逻辑,首先检查n是否小于或等于1,如果是则直接返回1(表示不是素数),然后使用while循环和math.sqrt(n)来查找因子,如果找到因子则设置标志w为1并跳出循环,最后返回w的值。 2. **水仙花数**: - 水仙花数是三位数中的一种特殊形式,它的每一位数字的立方和等于它本身。在Python中,可以通过遍历100到999的范围,对每个数i拆分成百位、十位和个位,分别计算立方和,如果相等则打印出来。在提供的代码中,通过`main`函数实现这一过程,对每个数i,提取百位h、十位t和个位s,然后比较i是否等于h³+t³+s³。 3. **日期处理**: - 第三个题目要求根据用户输入的日期计算出在当年中的位置。在Python中,可以使用内置的datetime模块来处理日期。首先,需要将用户输入的字符串转换为datetime对象,然后减去一年的第一天,得到的timedelta对象表示了当年已过的天数。在提供的代码中,这部分是空缺的,需要填写如何将用户输入转换为日期并计算天数。 这些编程题目适合初学者练习Python的基础知识和逻辑思维能力,同时也涉及到一些基本的算法和数据类型操作。通过解决这些问题,学生可以加深对Python语言的理解,提升编程技能。