import math

def is_prime(n): if n < 2: return False for i in range(2, int(math.sqrt(n))+1): if n % i == 0: return False return True

def prime_factorization(n): factors = [] if n < 2: return factors i = 2 while i <= n: if n % i == 0: factors.append(i) n //= i else: i += 1 return factors

n = int(input()) factors = prime_factorization(n) primes = [] for factor in factors: if is_prime(factor): primes.append(factor) primes = list(set(primes)) primes.sort() print(' '.join(map(str, primes))

由数学基本定理可知:任何一个大于1的非素数整数即合数都可以唯一分解成若干个素数的乘积。编写程序从控制台读入一个合数合数的大小不会超过int数据类型表示的范围求该合数分解成素数的最小集。该最小素数集由合数分解成的素数组成并且重复的素数只保留一个。按从小到大的顺序输出求得的最小素数集。【输入形式】从控制台输入一个合数。【输出形式】在标准输出上按从小到大顺序输出求得的最小素数集各素数之间以一个空格分隔最

原文地址: https://www.cveoy.top/t/topic/g9cp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录