Xiang Li-哈尔滨理工大学

试题 算法训练 素因子去重

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1
输入格式
  一个整数,表示n
输出格式
  输出一行,包含一个整数p。
样例输入
1000
样例输出
10
数据规模和约定
  n<=10^12
  样例解释:n=1000=2^353,p=2*5=10

样例解释:n=1000=2 ^ 3 * 5 * 3(这里原题要表达的应该是)n=1000=2^3 * 5^3,p=2*5=10

"""
@Author:Lixiang

@Blog(个人博客地址): https://lixiang007.top/

@WeChat:18845312866

"""
import math as mt
import string
while True:
    try:
        n = int(input())
        s = set()
        ans = 1
        def sushu(n):
            for i in range(2,n+1):
                if n%i == 0:
                    s.add(i)#s.remove(i)
                    n = n//i
                    return sushu(n)
        sushu(n)
        for num in s:
            ans *= num
        print(ans)
    except:
        break

Xiang Li-哈尔滨理工大学_第1张图片

你可能感兴趣的:(算法)