2012_p1 质因数分解 (prime.cpp/c/pas)
时间限制: 1 Sec 内存限制: 128 MB
提交: 80 解决: 27
[提交][状态][讨论版][命题人:外部导入]
题目描述
1.质因数分解
(prime.cpp/c/pas)
【问题描述】
已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。
【输入】
输入文件名为 prime.in。
输入只有一行,包含一个正整数 n。
【输出】
输出文件名为 prime.out。
输出只有一行,包含一个正整数 p,即较大的那个质数。
【输入输出样例】
prime.in
21
prime.out
7
【数据范围】
对于 60%的数据,6 ≤ n ≤ 1000。
对于 100%的数据,6 ≤ n ≤ 2*109。
输入
输出
提示
核心思路:枚举
n是两个质数的乘积,所以n仅有四个因数即 1,较小质数,较大质数,n本身
所以对n从整数2开始取余,第一个能整除的数就是较小的那个质数。
#include<iostream>
using namespace std;
int main()
{
long long int n,m;//m为较小质数
cin>>n;
for(long long int i=;i<n;i++)
if(n%i==){m=i;break;}//用枚举发找出m,找到时退出循环
cout<<n/m<<endl;
return ;
}