Bootstrap

洛谷 P1075 [NOIP2012 普及组] 质因数分解 C语言

题目:

P1075 [NOIP2012 普及组] 质因数分解 - 洛谷 | 计算机科学教育新生态

题目描述

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

输入格式

输入一个正整数 n。

输出格式

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

输入输出样例

输入 #1复制

21

输出 #1复制

7

说明/提示

1≤n≤2×1e9

NOIP 2012 普及组 第一题

思路:

很简单,枚举出最小的质数i且是n的因数,n/i也是质数,循环就可以结束了,输出n/i。

代码如下:

#include<iostream>
using namespace std;
bool is_prime(int x)
{
	for(int i = 2 ; i < x ; i++)
	{
		if(x % i == 0)
		return false;
	}
	return true;
}
int main(void)
{
	int n;
	cin >> n;
	for(int i = 2 ; i < n ; i++ )
	{
		if(n % i == 0)
		{
			if(is_prime(i))
			{
				cout << n/i << endl;
				break;
			}
		}
	}
	return 0;
 } 

;