a = int(input()) def isprime(n): if n == 2: return True for i in range(2,int(n**0.5)+1): if n%i == 0: return False return True def prime(lim): for i in range(2,lim): if isprime(i): yield i p = prime(a) n = next(p) while n<=a: if isprime(a): print(a) break if a%n == 0: a = a//n print(n,end=' ') else: n = next(p)创建质数生成器,逐步输出质因数
import math while True: try: n = int(input()) for i in range(2, int(math.sqrt(n)+1)): while n % i ==0: print(i, end=' ') n = n // i if n != 1: print(n) except: break
a = int(input())
def sub(num):
if num % 2 == 0:
return 2, num // 2
else:
i = 1
while (2 * i + 1)*2 * i + 1 <= num:
if num % (2 * i + 1) == 0:
return 2 * i + 1, num // (2 * i + 1)
i = i + 1
return 0, num
s_list = []
s1, s2 = sub(a)
while s1 != 0:
s_list.append(s1)
s1, s2 = sub(s2)
if s2 > 1:
s_list.append(int(s2))
print(' '.join(str(s) for s in s_list)) def factor(N):
res = []
if N > 1:
c = int(N**0.5)
while N % c:
c = c - 1
if c == 1:
res.append(int(N)) # int !!!!!
else:
res = res + factor(c)
res = res + factor(N / c)
return res
if __name__ == "__main__":
N = int(input())
res = sorted(factor(N))
res = list(map(str, res))
print(" ".join(res)) import math num = int(input()) prime = 2 s = '' while prime < math.sqrt(num) + 1: if num%prime != 0: prime += 1 else: num=num//prime s = s + str(prime) + ' ' s = s + str(num) print(s)
num=int(input()) lst=[] while num%2==0: lst.append(2) num=num//2 while num%3==0: lst.append(3) num=num//3 while num%5==0: lst.append(5) num=num//5 while num%7==0: lst.append(7) num=num//7 while num%17==0: lst.append(17) num=num//17 while num%13==0: lst.append(13) num=num//13 while num%23==0: lst.append(23) num=num//23 while num%107==0: lst.append(107) num=num//107 if num!=1: lst.append(num) lst.sort for j in lst: print(j,end=' ')
for i in range(7,num//30):
num=num//i
就一直提醒超时,对着答案一个一个写出来,就能全部通过啦