牛客网[编程题] 超级素数幂(Java实现)
来源:互联网 发布:手机屏幕恶搞软件 编辑:程序博客网 时间:2024/05/17 09:18
如果一个数字能表示为p^q(^表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整数n,如果n是一个超级素数幂需要找出对应的p,q。
输入描述:
输入一个正整数n(2 ≤ n ≤ 10^18)
输出描述:
如果n是一个超级素数幂则输出p,q,以空格分隔,行末无空格。如果n不是超级素数幂,则输出No
输入例子:
27
输出例子:
3 3
package power.prime.superrrrr;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 输入n的范围超过了int,只能用long类型// int是32位,long是64位long n = sc.nextLong();solve(n);sc.close();}/* * 注意:solve方法中q要用long数据类型 * 频繁的数据类型转换(long to int or int to long)会耗费大量时间 */private static void solve(Long n) {double p;for (long q = 2; q * q <= n; q ++) {//这里p和q的数据类型一定要一致,否则运行时间会超时p = Math.pow(n, 1d / q);if (p ==Math.floor(p) && isPrime( (int)p)) {System.out.println((int) p + " " + q);return;}}System.out.println("No");}// 判断是否素数private static boolean isPrime(long p) {if (p <= 1)return false;for (int i = 2; i * i <= p; i++) {if (p % i == 0)return false;}return true;}}
0 0
- 牛客网[编程题] 超级素数幂(Java实现)
- [编程题]超级素数幂
- 超级素数实现算法
- 2017年校招全国统一模拟笔试(第一场)编程题集合——超级素数幂
- 超级素数幂
- 超级素数幂
- 超级素数幂
- 超级素数幂
- 超级素数幂
- 超级素数幂解题报告
- 超级素数幂 Python 版
- 素数环(java实现)
- 【牛客网 2017年校招模拟笔试(第一场)】超级素数幂
- 超级素数
- 超级素数
- 超级素数
- 超级素数
- 非常经典的JAVA编程题(素数)
- 设计模式--装饰者模式
- 一些简单的利用循环实现问题的代码
- windows下面安装Python和pip终极教程
- 求二叉树的深度,判断该树是不是平衡二叉树
- C#中的多态性
- 牛客网[编程题] 超级素数幂(Java实现)
- mybatis大于小于的转义
- Python抓取ajax加载图片集
- QT窗口操作函数
- Android Service完全解析
- eclipse不保存基本设置
- (一).tomcat安装以及简介
- SAP HANA中null变成问号的问题
- HDU1233 还是畅通工程