1059 Prime Factors
题目大意:给出一个数n,找出他的所有素因子,按照格式输出即可。
注意1和n自身是素数的情况
from math import *
def isPrime(n):
if n==1:
return False
if n==2 or n==3:
return True
for i in range(2,int(sqrt(n))+1):
if n%i==0:
return False
return True
n=int(input())
prime_factor=set() #记录素因子数
count={} #记录所有素因子出现的次数
print("%d="%n,end="")
if n!=1:
for i in range(2,int(sqrt(n))+1):
while n%i==0 and isPrime(i):
prime_factor.add(i)
n/=i
count[i]=count.get(i,0)+1
if len(prime_factor)==0:
print(n,end="")
else:
prime_factor=list(prime_factor)
prime_factor.sort()
for i in range(len(prime_factor)):
if i!=0:
print("*",end="")
if count[prime_factor[i]]>1:
print("{:d}^{:d}".format(prime_factor[i],count[prime_factor[i]]),end="")
else:
print("%d"%prime_factor[i],end="")
该代码实现了一个功能,输入一个正整数n,找出并按特定格式输出它的所有素因子。首先定义了一个判断素数的函数isPrime,然后通过循环找到并记录n的所有素因子,最后按照要求的格式打印结果。特别处理了n为1的情况,并考虑了素因子重复出现的次数。
292

被折叠的 条评论
为什么被折叠?



