zoukankan      html  css  js  c++  java
  • 超级素数幂 java

    链接:https://www.nowcoder.com/questionTerminal/fb511c3f1ac447309368d7e5432c6c79
    来源:牛客网

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

    输入描述:

    输入一个正整数n(2 ≤ n ≤ 10^18)

    输出描述:

    如果n是一个超级素数幂则输出p,q,以空格分隔,行末无空格。
    如果n不是超级素数幂,则输出No

    输入例子:

    27

    输出例子:

       3 3

    分析:此题分为两部分,首先考虑n是否能转化为p^q的形式,其次判断P是否为素数。

        1.利用pow()函数进行开方,q的值最小为2最大为sqrt(n);

        2.素数是大于1的自然数中,除了1和它本身以外不再有其他因数的数。所以除了2以外的偶数都不是素数,这样可以筛选掉一部分数。

        • 判断p是否为素数,需要除以从2~sqrt(p)的数都不整除。
        • 或者从第1个素数开始添加到一个集合中,后面的只需要判断是否能整除小于自己的素数即可。
        • import java.util.Scanner;
          
          public class Main {
          
              public static void main(String[] args) {
                  Scanner sc = new Scanner(System.in);
                  long num=sc.nextLong();
                  double p=0;
                  boolean flag=false;
                  for(long q=2;q<=(long)Math.sqrt(num);q++){
                      p=Math.pow((double)num,1d/q);
                      if((long)p==p&& prime((long)p)){
                          System.out.println((long)p+" "+q);
                          flag=true;
                          break;
                      }
                  }
                  if(!flag) {
                      System.out.println("No");
                  }
              }
              public static boolean prime(long n){
                  if(n%2!=0||n==2){
                      for(long j=2;j<=(long)Math.sqrt(n);j++){
                          if(n%j==0&&n!=2) return false;
                      }
                      return true;
                  }
                  return false;
              }
          }
                    
  • 相关阅读:
    手把手教你整Win10的Linux子系统(Ubuntu)
    Golang从入门到微服务
    GitHub总是打不开
    github无法push?看这篇文章就够了
    shell 操作mysql
    04 elasticsearch学习笔记-基本CRUD
    kibana-6.2.4-amd64的安装
    es 的reindex详解
    ruby 操作csv
    shell 去掉逗号_shell替换和去掉换行符
  • 原文地址:https://www.cnblogs.com/cuncunjun/p/6528416.html
Copyright © 2011-2022 走看看