Java版,如果一个数字能表示为p^q(^表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q

    xiaoxiao2021-03-25  144

    如果一个数字能表示为p^q(^表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q。 
    输入描述:
    输入一个正整数n(2 ≤ n ≤ 10^18)
    输出描述:
    如果n是一个超级素数幂则输出p,q,以空格分隔,行末无空格。 如果n不是超级素数幂,则输出No
    输入例子:
    27
    输出例子:
    3 3

    package abc; import java.util.Scanner; public class test3 { public static void main(String args[]){ Scanner x=new Scanner(System.in); long n=x.nextLong(); boolean boole = false; int end = (int) Math.sqrt(n); for(int i = 2;i<=end;i++){ double bb = sqrt(n,i); if(bb ==(int)bb&&isSu((int)bb)){ System.out.println((int)bb+" "+i); break; } if(i==end){ System.out.println("No"); break; } } } public static double sqrt (double n,double i ){ //对n开 i次方 i = 1/i; return Math.pow(n, i); } public static boolean isSu(int n){ //判断为素数 boolean boole = true; for(int j = 2;j<=9;j++){ if(n==j){ continue; } if(n%j==0||n<2){ boole = false; break; } } return boole; } }
    转载请注明原文地址: https://ju.6miu.com/read-9712.html

    最新回复(0)