质因数分解

题目描述

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

输入格式

输入一个正整数 n。

输出格式

输出一个正整数 p,即较大的那个质数。

输入输出样例

输入 

21

输出 

7

———————————————————————————————————————————

分析首先:这是一道非常简单的题。

两个质数相乘的积的因数只有1,它本身,还有这两个质数。

把1和它本身去掉只有这两个质数。

———————————————————————————————————————————

普通

#include
using namespace std;
int n,ans;
int main(){
	cin>>n;
	for(int i=2;i

优化

#include
using namespace std;
int n;
int main(){
	cin>>n;
	for(int i=n/2;i<=n;i++){只判断一半其中的因数,n除以他就是大的那个。
		if(n%i==0){
			cout<

再优化

#include
using namespace std;
int n;
int main(){
	cin>>n;
	for(int i=sqrt(n);i<=n;i++){从后面往前判断。大的那个肯定大于n的平方根。
		if(n%i==0){
			cout<

你可能感兴趣的:(算法,数据结构)