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
就一直提醒超时,对着答案一个一个写出来,就能全部通过啦