⑴ python3 做正整数的拆分,输入4,输出[[1,1,1,1],[1,1,2],[1,3],[2,2],[4]] 请问有谁会啊,求指点
deff(num):
l=[1]*num
r=[]
foriinrange(len(l)-1):
r.append(l[:])
l[-2]=l[-1]+l[-2]
dell[-1]
r.append(l[:])
returnr
printf(4)
囧……这样少了那个[2,2]…… 好像要用到除法和求余…… 下午再想想看……
⑵ 求Python的质因数分解
x=eval(input("请输入小于1000的整数:"))
k=2
print(x,"=",end="")
while x>1:
if x%k==0:
print(k,end="")
x=x/k
if x>1:
print("*",end="")
else:
k=k+1
⑶ 使用python将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。应该要怎么做
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def receNum(n):
print '{} = '.format(n),
if not isinstance(n, int) or n <= 0 :
print '请输入一个正确的数字 !'
exit(0)
elif n in [1] :
print '{}'.format(n)
while n not in [1] : # 循环保证递归
for index in xrange(2, n + 1) :
if n % index == 0:
n /= index # n 等于 n/index
if n == 1:
print index
else : # index 一定是素数
print '{} *'.format(index),
break
receNum(90)
receNum(100)
以上实例输出结果为:
90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5
⑷ Python去除整数列表中的素数,输出其中素数个数
为整数,元素之间逗号隔开,编写程序将列表中的素数去除,输出
⑸ python3环境下,对一个整数分解质因数,这么写哪里有错误求解
少个else:
num1=int(input("请输入要分解的正整数:"))
temp=[]
ifnum1==1:
print("无法分解质因素")
else:
k=2
whilek<=num1:
ifnum1%k==0:
num1=num1/k
temp.append(k)
else:
k+=1
print(temp)
⑹ Python求因数分解
defm(n):
ret=[]
whilen>1:
foriinrange(n-1):
k=i+2
ifn%k==0:
ret.append(k)
n=int(n/k)
break
print(ret)
m(20)就可以输出20的因式分解了。
至于如何处理成^就比较简单了,可以用 Counter 自己处理下。
⑺ python整数拆分成几个数的和
如何实现整数分为几个数的和,可以理解为一个整数的分箱问题 简单叙述解题思路: 比如:4这个整数,最多分为4个箱(1,1,1,1);最少一个箱...
⑻ Python编写一个程序,输入9位整数,分解为3个3位整数
a="123456789"
b=[a[i:i+3]foriinrange(0,len(a),3)]
c=','.join(b)
print(c)
最后输出为str类型的格式
123,456,789
而不是
[123,456,789]
⑼ python将一个正整数分解质因数.
nnotin[1]就是n不等于1
print'{}*'.format(index)是在最后将输入的n打印成质因数,就是变成1*2*5这种样式
⑽ 将一个正整数分解质因数。python3.6问题,输出为空,是哪里出了问题,求大神解答
第一是函数p(t,l)没有返回,在函数里修改列表l,是不能把结果带回的,还有后面的代码里使用了p(t/h),p函数需要两个参数,另外的代码也有一些问题,分解质因数推荐写成以下的形式
defp(n):
l=[]
foriinrange(2,n):
ifi*i>n:
break
whilen%i==0:
n//=i
l.append(i)
ifn!=1:
l.append(n)
returnl
i=int(input("请输入一个不小于2的正整数:"))
l=p(i)
print("".join(['*'+str(l[i])ifi!=0elsestr(l[i])foriinrange(len(l))]))