Python小练习---写一个函数接受一个int型参数,返回该参数的最大质因子。

思路

通过raw_input()函数获取参数,这个函数的默认返回值类型是string,通过int()转为int型参数;
计算出参数的因子,保存在数组中;从前面的练习已经知道数组中最后一个数最大;
反向遍历数组,判断参数是否为质数,从来得到数组中的最大质数。

break和continue

break是直接跳出for循环;
continue是跳过此次循环剩余的部分,继续进行下一次for循环中的条件判断。

for…else…的作用(else不属于for循环的内容)

for…else…的运行逻辑是当for循环正常执行结束就会运行其else语句,如果for循环中途break的话,就不会执行else中的内容。

从后往前遍历数组

for j in range(len(alist)-1,-1,-1)

range()函数语法:range(start, stop[, step])
因为数组的下标是从0开始的,所以最后一个数组的标识是len(alist)-1,len()是获取长度,因为range()函数不包括stop,从后往前遍历最后一个元素是alist[0],所以写负一。

实现脚本

# encoding: utf-8
#整数a除以整数b(b≠0)的商正好是整数而没有余数,我们就说b是a的因子。0不是0的因子。一个整数的因子至少有1和它本身。
#1的因子是其本身,0的因子是除了0以外的所有整数
def number3(a):
#定义一个数组用来保存最后的因子结果
	alist = []
#abs()函数会返回数字的绝对值
	b = abs(a)
	for i in range(1,b+1):
		if b % i == 0:
#向一个数组的最后插入一个数
			alist.append(i)
#此时数组内最后一个数是最大的因子,从后往前判断这个因子是不是质数,是的话就是最大质因子。
#数组从后往前遍历
	for j in range(len(alist)-1,-1,-1):
		c = alist[j]
		for m in range(2, c):
			if c % m == 0:
				break
		else:
			return c
#得到参数值,并且转化为int类型
a = int(raw_input("please input your number:"))
#输出函数结果,调用函数给函数传参数
print "The factor of this number is: ", number3(a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值