信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1098:质因数分解

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 8549 通过数: 4398

【题目描述】

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

【输入】

输入只有一行,包含一个正整数 n。
对于60%的数据,6≤n≤1000。
对于100%的数据,6≤n≤2×109。

【输出】

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

【输入样例】

21

【输出样例】

7

【来源】

NO

代码

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int n;
	int i,j;
	cin>>n;
	for(i=2;i<=sqrt(n);i++)//两个不同质数,其中必有一个≤sqrt(n)
	{
		if(n%i==0)//找到质数
		{
			cout<<n/i<<endl;//较大质数=n/较小质数,输出
			break;//输出后,终止
		}
	}
 	return 0;
}
原文地址:https://www.cnblogs.com/AlexKing007/p/12338791.html