超级素数幂
来源:互联网 发布:日本历史书籍推荐知乎 编辑:程序博客网 时间:2024/05/16 12:38
链接: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去从小到大余素数会超时。正确做法是对n开方,依次开1/2 1/3直到结果小于2(最小的素数)
// 超级素数幂.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <cmath>#include <iostream>using namespace std;long long n;long long cal(long long m, long long i) {return i == 0 ? 1 : cal(m, i - 1)*m;}bool isprime(long long n) {for (int i = 2; i*i <= n; i++) {if (n%i == 0) return false;}return true;}int main() {cin >> n;bool flag = 1;long long ans,cnt;for (int i = 2;; i++) {ans = pow(n, 1.0 / (double)i);if (ans < 2.0) break;if ((cal(ans, i)==n) && isprime(ans)) {flag = 0;cnt = i;break;}}if (flag) cout << "No\n";else cout << ans << " " << cnt << endl;}
0 0
- 超级素数幂
- 超级素数幂
- 超级素数幂
- 超级素数幂
- 超级素数幂
- 超级素数幂解题报告
- [编程题]超级素数幂
- 超级素数幂 Python 版
- 超级素数
- 超级素数
- 超级素数
- 超级素数
- 牛客模拟一:超级素数幂
- [usaco]超级素数 superprime
- 神秘的超级素数
- 超级素数实现算法
- P2667 超级素数
- 【牛客网 2017年校招模拟笔试(第一场)】超级素数幂
- 面向对象几个主要特征的理解
- sdutacm-字符串扩展
- mysql数据库锁定机制
- 点击UITextField弹出UIDatePicker(时间选择器)
- KMP算法实现及其匹配改进
- 超级素数幂
- M3W2-上海GQ信息笔试
- eclipse快捷键
- Sping事务管理
- JSP--动态页面技术
- Java泛型详解
- topo排序(邻接表) 判断topo序列是否存在,是否唯一,以及输出序列
- L1-009. N个数求和
- 自己瞎写的小程序