【题解】【洛谷P1075】【数学】—— [NOIP2012 普及组] 质因数分解
[NOIP2012 普及组] 质因数分解
题目描述
已知正整数 n n n 是两个不同的质数的乘积,试求出两者中较大的那个质数。
输入格式
输入一个正整数 n n n。
输出格式
输出一个正整数 p p p,即较大的那个质数。
输入输出样例
输入 #1
21
输出 #1
7
提示
1 ≤ n ≤ 2 × 1 0 9 1 \le n\le 2\times 10^9 1≤n≤2×109
NOIP 2012 普及组 第一题
解法1.直接枚举
1.1.题意解析
看到题目,大多数人都会想到从
n
n
n枚举到
2
2
2,寻找
n
n
n的较大质因数。但是嘛……
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=n-1;i>=2;i--)
if(n%i==0)
{
cout<<i;
break;
}
return 0;
}
我们可以考虑枚举较小的质因数,从而找到较大的质因数。
1.2.AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=2;i<=n-1;i++)
if(n%i==0)
{
cout<<n/i;
break;
}
return 0;
}
解法2.素数筛法
2.1.思路解析
可以将素数全部筛出来,再一一枚举。这里仅提供一个思路,请读者自己尝试使用素数筛法完成。
喜欢就订阅此专辑吧!
【蓝胖子编程教育简介】
蓝胖子编程教育,是一家面向青少年的编程教育平台。平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。
欢迎扫码关注蓝胖子编程教育