NOIP2012普及组第一题
已知正整数n是两个不同的质数的乘积试求出较大的那个质数。
输入只有一行包含一个正整数n。
输出只有一行包含一个正整数p, 即较大的那个质数。
21
7
1S
【数据范围】 对于60%的数据,6 ≤ n ≤ 1000。 对于100%的数据,6 ≤ n ≤ 2*10的9次方
NOIP2012普及组第一题
题目链接:https://vijos.org/p/1786
分析:大暴力吧,说白了,判一发质数然后找最大就好了!
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 bool gcd(int a)
4 {
5 int flag=1;
6 for(int i=2;i<=(int)sqrt(a);i++)
7 {
8 if(a%i==0)
9 {
10 flag=0;
11 break;
12 }
13 }
14 if(!flag)
15 return false;
16 return true;
17 }
18 int main()
19 {
20 int n;
21 cin>>n;
22 int maxn=0;
23 for(int i=1;i<=(int)sqrt(n);i++)
24 {
25 if(n%i==0)
26 {
27 int t=n/i;
28 if(gcd(t))
29 maxn=max(maxn,t);
30 }
31 }
32 cout<<maxn<<endl;
33 return 0;
34 }