解题思路:
先拿到n的所有约数,再在约数中找出质数,将找出的质数相乘
如果n本身为素数,就直接输出它本身,因为素数因子只有1,和它本身
注意事项:
注意去重,例如25的约数有 1,5,5,25. 利用python的集合自动去重功能,将找出的约数先存在集合中,
存在集合中:1,5,25,
参考代码:
n = int(input())
lis = set() # 用来去重
# 判断是否为素数,是就返回它本身,不是返回False
def isprime(n):
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
else:
return n
def func(n):
res = 1
# 如果输入的n是一个素数,则直接输出它本身
prime_n = isprime(n)
if prime_n != False:
print(n)
return 0
# 如果不是,则拿到n的所有约数
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
lis.add(i)
lis.add(n // i)
# 判断约数是非为素数,是素数则开始相乘
for i in lis:
prime_n = isprime(i)
if prime_n != False:
res = res * prime_n
print(res)
func(n)
0.0分
0 人评分
字符逆序 (C语言代码)浏览:646 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:787 |
Pascal三角 (C语言代码)浏览:653 |
判定字符位置 (C语言代码)浏览:799 |
多输入输出练习2 (C语言代码)浏览:1657 |
小O的图案 (C语言代码)浏览:915 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:393 |
汽水瓶 (C语言代码)浏览:536 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:702 |
1063题 初学者,求帮忙看下,不知道哪错了浏览:232 |