问题 A: 【素数】质因数分解
时间限制: 1 Sec 内存限制: 128 MB
题目描述
已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。
输入
输入只有一行,包含一个正整数n。6 ≤ n ≤ 2*109
输出
输出只有一行,包含一个正整数p,即较大的那个质数。
样例输入 Copy
21
样例输出 Copy
7
AC代码
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N=4e5+5;
int a[N],c=0;
int n;
int main()
{
int i;
scanf("%d",&n);
for(i=2;i*i<=n;i++)
{
while(n%i==0)
{
a[++c]=i;
n=n/i;
}
}
if(n!=1)a[++c]=n; /*本身*/
printf("%d",a[c]);
// for(i=1;i<=c;i++)
// printf("%d ",a[i]); //输出所有质因数
return 0;
}