- 将一个正整数分解质因数。例如:输入90,打印出90=233*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:
(1)如果分解后商为1,则说明分解质因数的过程已经结束,打印出即可。
(2)如果商不为1,则应打印出i的值,并用n除以i的商,作为新的正整数进行分解,
重复执行第一步。
(3)如果n不能被i整除,则i的值加1,重复执行第一步。
逻辑:1、让用户输入一个数字num,并将它整数化
2、新建一个列表,当num!=1时,循环,num%i=0,说明可以整除,然后找出余数:num=num/i ,将num余数加入列表中,然后通过
' * '.join(map(str,列表))打印出来
while True:
num=raw_input('Please a num: ')
if num!='quit':
num=int(num)#整数化
if num<2: #num=1,那么就没有意义了
print 'num more 2'
continue
list1=[1,] #定义一个列表,找出质数因子后将加入到列表里
while num!=1:
for i in range(2,num+1):
if num%i == 0:
num /= i #比如num=12,i=2,num=12/2=6,然后加入列表list1,跳出这个循环,接着num=6/2
list1.append(i)
break
print ' * '.join(map(str,list1)) #L=(1,2,3),map(str,L)返回结果:[1,2,3],将map=str(L)
else:
print 'end'
break
2、# 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
#思路:定义天数:Day=10;桃子个数:peachNumber=1;第9天 桃子的个数假设为x:x/2-1=1;x=(1+1)2=4个
#那就是说peachNumber=(peachNumber+1)2
Day=10
peachNumber=1
while Day>1:
print Day
Day-=1
peachNumber = (peachNumber + 1) * 2
print '{0} day,peachNumber is {1}'.format(Day,peachNumber)
本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2055861,如需转载请自行联系原作者