质因数分解

匆匆过客 提交于 2019-12-06 16:55:34

题目描述 

已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。

输入描述:

输入只有一行,包含一个正整数n。

输出描述:

输出只有一行,包含一个正整数p,即较大的那个质数。
示例1

输入

复制
21

输出

复制
7

备注:

对于60%的数据,6≤n≤1000。
对于100%的数据,6≤n≤2*10^9。
解析:
说实话,看到这个题目是不是就觉得得分别判断这两歌树是不是质数。一开始我就想先暴力找到一个能被n整除的较小的质数,然后用n/min不就行了吗,可是后来一想,不对呀,不能保证大的数也是质数呀,于是,我就看了看数据,还是硬着头皮将这个想法敲上了,一提交竟然对了???黑人问号???可是后来一想,给出的这个数肯定能分解成两个质因数,而像24,100这样的数,肯定就不在考虑范围了。
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <string>
 5 #include <cstring>
 6 #include <cstdlib>
 7 #include <cmath>
 8 #include <stack>
 9 #include <queue>
10 #include <set>
11 #include <map>
12 #include <vector>
13 #include <ctime>
14 #include <cctype>
15 #include <bitset>
16 #include <utility>
17 #include <sstream>
18 #include <complex>
19 #include <iomanip>
20 #define inf 0x3f3f3f3f
21 typedef long long ll;
22 using namespace std;
23 ll n;
24 int main()
25 {
26     cin>>n;
27     for(int i=2; i<=n/2; i++)
28     {
29         if(n%i==0)
30         {
31             cout<<n/i<<endl;
32             break;
33         }
34     }
35     return 0;
36 }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!