helphelphelp
问题:不明白为什么'%d'%i end="就可以print出输入的数=x1*x2... 其实就是没看懂三个print后面的意义····· 而且每一次循环都有不同的i 而每一次print都只能print一个i 不明白怎么做到比如 333=3*3*37(这里连续乘了好几个"i")while 1:
n = int(input('请输入一个整数:'))
print('%d='%n,end='')
while n>1:
for i in range(2,n+1):
if n%i==0:
n=int(n/i)
if n==1:
print('%d'%i,end='')
else:
print('%d*'%i,end='')
break
print() 输入333
第一步:3是333的因子--->333 = 3*111(此时n变为111,打印3*)
第二步:3是111的因子 ---->111 = 3*37(此时n变为37,打印3*)
三: 1是37的因子(37是素数,此时n变为1) ----> 打印37(,因为n是一,因此最后一个因子末尾没有乘号)
得到结果333=3*3*37
while 1:
n = int(input('请输入一个整数:'))
print('%d='%n,end='')
while n>1:
for i in range(2,n+1):
if n%i==0: #判断i是否是n的因子
n=int(n/i) #如果i是n的因子,求n除因子i后的商
if n==1: #再继续判断该商是否有其他因子,直到该因子为一
print('%d'%i,end='')
else:
print('%d*'%i,end='')
break 还不够好 发表于 2020-11-29 08:36
输入333
第一步:3是333的因子--->333 = 3*111(此时n变为111,打印3*)
第二步:3是111的因子 ---->...
谢谢你!我懂了 还不够好 发表于 2020-11-29 08:36
输入333
第一步:3是333的因子--->333 = 3*111(此时n变为111,打印3*)
第二步:3是111的因子 ---->...
嗨,你能再帮我分析一下一段代码吗?我主要不太懂 l=是什么意思··
from functools import reduce
def sum(a,b):
return a+b
for i in range(2,1001):
l =
for j in range(2,int(i/2+1)):
if i%j==0:
l.append(j)
if i == reduce(sum,l):
print(i)
print(l)
富富猪猪 发表于 2020-11-29 11:51
嗨,你能再帮我分析一下一段代码吗?我主要不太懂 l=是什么意思··
from functools import reduce ...
l = 是初始化因子列表, 因为所有数都有一个因子1,所以就写进去了
页:
[1]