如果一个数字能表示为pq(表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q。
输入描述:
输入一个正整数n(2 ≤ n ≤ 10^18)
输出描述:
如果n是一个超级素数幂则输出p,q,以空格分隔,行末无空格。
如果n不是超级素数幂,则输出No
输入例子:
27
输出例子:
3 3
import java.util.Arrays;
import java.util.Scanner;
public class Pass {
public static boolean Sushu(long n){
if(n%2!=0||n==2){
for(int j=2;j<=Math.sqrt(n);j++){
if(n%j==0&&n!=2){
return false;
}
}
return true;
}
return false;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
boolean flag=false;
for(long q=2;q<=(long)Math.sqrt(n);q++){
double p=(double) Math.pow((double)n, 1d/q);
if((long)p==p&&Sushu((long)p)){
System.out.println((long)p+" "+q);
flag=true;
break;
}
}
if(!flag){
System.out.println("No");
}
}
}