2017年校招全国统一模拟笔试(第一场)编程题集合——超级素数幂
2017-03-20 16:26
411 查看
题目要求:
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
贴上代码(此代码非本人所写):
总结:
p = Math.pow((double) num, 1d/q);此函数求出num的 1d/q次方,即q此根号下num的值。
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
贴上代码(此代码非本人所写):
package niuKe1; import java.util.Scanner; public class SuperPrimeNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //int最大范围为2^32.远远小于10^18.故用long.long的范围为2^64 long num = sc.nextLong(); double p; boolean flag = false; for (long q = 2; q * q <= num; q ++) { //将num的q次开平方后的值赋给p p = Math.pow((double) num, 1d/q); //(long)p == p 判断p经过 Math.pow((double) num, 1d/q)后是否为整数 if ((long)p == p && isPrimeNumber((long) p)) { System.out.println((long) p + " " + q); flag = true; break; } } if (!flag) { System.out.println("No"); } } /** * 判断是否为素数 * @param n 输入long值 * @return true素数 false 不是素数 */ public static boolean isPrimeNumber(long n) { if (n <= 1) return false; for (int i = 2; i * i <= n; i ++) { if (n % i == 0) return false; } return true; } }
总结:
p = Math.pow((double) num, 1d/q);此函数求出num的 1d/q次方,即q此根号下num的值。
相关文章推荐
- 2017年校招全国统一模拟笔试(第一场)编程题集合——好多鱼
- 牛客网2017年校招全国统一模拟笔试(第一场)编程题集合
- 2017年校招全国统一模拟笔试(第一场)编程题集合——连续整数
- 牛客网2017年校招全国统一模拟笔试(第一场)编程题集合
- 2017年校招全国统一模拟笔试(第一场)编程题集合--Python
- 2017年校招全国统一模拟笔试(第一场)编程题集合——循环单词
- 2017年校招全国统一模拟笔试(第三场)编程题集合--Python
- 2017年校招全国统一模拟笔试(第三场)编程题集合
- 2017年校招全国统一模拟笔试(第二场)编程题集合--Python
- 牛客网2017年校招全国统一模拟笔试(第一场)编程题 -- 好多鱼!
- 2017年校招全国统一模拟笔试(第四场)编程题集合--Python
- 017年校招全国统一模拟笔试(第三场)编程题集合
- 2018年校招全国统一模拟笔试(第一场)编程题第一题密码翻译
- 2017年校招全国统一模拟笔试(第三场)编程题集合(Javascript版)
- 2017年校招全国统一模拟笔试(第五场)编程题集合(Javascript版)
- 2017年校招全国统一模拟笔试(第五场)
- 2017年校招全国统一模拟笔试(第四场)_逃离农场
- 2017年校招全国统一模拟笔试(第五场)
- 2017年校招全国统一模拟笔试(第五场)偶串
- 牛客网2017年校招全国统一模拟笔试(第三场)编程题集合