问题描述:
给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,
且每个素因子的次数不大于1
输入格式:
一个整数,表示n
输出格式:
输出一行,包含一个整数p。
示例输入:
1000
示例输出:
10
数据规模与约定:
n<=10^12
样例解释:n=1000=2^3*5*3,p=2*5=10
代码段:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine();
long n = Long.parseLong(line);
int result = 1;
List<Integer> list = new ArrayList<Integer>();
for (int i = 2; i < n; i++) {
if (n % i == 0) {
list.add(i);
n /= i;
while (n % i == 0) {
n /= i;
}
}
if (n < i) {
break;
}
}
list.add((int) n);
for (int num : list) {
result *= num;
}
System.out.println(result);
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-38337.html