根据算术基本定理,任何一个合数N,都可以被分解为N=a1*a2*...an(a1≤a2≤...≤an,且ai为质数,1≤i≤n).an就是这个合数的最大质因子
对于质数,其最大质因数就是本身。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+5;
bool check(ll x){
for(ll i=2;i<=sqrt(x);i++){
if(x%i == 0) return 0;
}
return 1;
}
int main() {
ll n,ans;
cin>>n;
for(ll i=2;i<=n;i++){
if(check(i) && n%i == 0){
while(n%i==0){
n/=i;
}
ans = i;
}
}
cout<<ans<<endl;
return 0;
}
本文介绍了一种算法,用于找出任意合数的最大质因数。通过检查从2开始的所有整数,如果该数是质数并且能整除目标合数,则将其作为当前最大质因数,直至完全分解。此算法利用了算术基本定理。

3472

被折叠的 条评论
为什么被折叠?



