解题思路:
先拿到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语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:785 |
C语言程序设计教程(第三版)课后习题11.11 (C语言代码)浏览:768 |
C语言训练-数字母 (C语言代码)浏览:583 |
C语言程序设计教程(第三版)课后习题9.8 (Java代码)浏览:1636 |
【亲和数】 (C语言代码)浏览:856 |
简单的a+b (C语言代码)浏览:335 |
C语言训练-大、小写问题 (C语言代码)浏览:611 |
校门外的树 (C语言代码)浏览:692 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:349 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:785 |