每天学一点之Python100例(7~8)

每天学一点,形成一种知识复利

今天有点晚啊,昨天两牙大战精彩!!!

问题7:输出9 * 9口诀表
分析:99乘法表,得知共分为9行9列,可以想到通过2个for循环,打印出口诀表,设m为行,n为列
另外使用end = " "去除换行
demoCode:
#! /usr/bin/python3

def nineMultiTable():
for m in range(1,10):
for n in range(1,10):
print('%d*%d = %-3d' % (m,n,m*n),end=" ")
print()

nineMultiTable()

问题8:将一个正整数分解质因数。例如:输入60,打印出60 = 2*2*3*5
分析:先理解分解质因数,每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。
如何求一个分解质因数?
求一个数分解质因数,要从最下的质数除起,一直除到结果为质数为止。
第一肯定是用到了循环,第二质因数范围肯定在[2,输入的正整数],
第三先找出最小的质因数,第四如果某个正整数自己就是个质因数,则说明分解质因数结束
第五,假设正整数为m,n能被m整除,则打印出n,并且用m除以n的商作为新的m的值
第六,如果正整数不能被某个数整除,继续循环操作
#! /usr/bin/python3

def PrimeFactor():
input_num = int(input("please input a num:"))

if input_num < 2:
print("input error!!!")
else:
print("%d = "%input_num,end="")

for m in range(2, input_num + 1):
while(input != m):
if(input_num % m == 0):
print(m,end="")
input_num = input_num/m
if(input_num != 1):
print("*",end="")
else:
break;

print("")

PrimeFactor()

你可能感兴趣的:(每天学一点之Python100例(7~8))