每日编程-20170310

Posted r088r088

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日编程-20170310相关的知识,希望对你有一定的参考价值。

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

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

输入例子:
27

输出例子:
3 3

解答:

 1 #include <iostream>
 2 #include <math.h>
 3 using namespace std;
 4 
 5 
 6 int main() {
 7     long long n, m, i = 0, j = 2;
 8     cin >> n;
 9     long long genhaoN = (long long)sqrt(n)+1;
10     for (; j <= genhaoN; j++)
11     {
12         m = n;
13         i = 0;
14         while (m%j == 0 && m != 0)
15         {
16             m /= j;
17             i++;
18         }
19         if (m == 1)
20         {
21             cout << j << " " << i << endl;
22             break;
23         }
24     }
25     if (m != 1)
26     {
27         cout << "No" << endl;
28     }
29 }

 

以上是关于每日编程-20170310的主要内容,如果未能解决你的问题,请参考以下文章

总结(20170218~20170310)

中山纪念中学20170310洗衣服(贪心,优先队列升序pair)

[原创]K8 Struts2 Exp 20170310 S2-045(Struts2综合漏洞利用工具)

markdown 每日片段

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程