算法训练 素因子去重
Posted a-little-nut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法训练 素因子去重相关的知识,希望对你有一定的参考价值。
#include<iostream>
#include<math.h>
#include<set>
using namespace std;
bool isprime(long long int n){
if(n==1) return false;
for(int i=2; i<=sqrt(n); i++)
if(n%i==0) return false;
return true;
}
int main(){
long long int n, ans=1;
cin>>n;
set<int> s;
while(!isprime(n)){
for(int i=2; i<=sqrt(n); i++)
if(isprime(i)&&n%i==0){
s.insert(i);
n/=i;
break;
}
}
s.insert(n);
for(set<int>::iterator it=s.begin(); it!=s.end(); it++)
ans*=(*it);
cout<<ans<<endl;
return 0;
}
以上是关于算法训练 素因子去重的主要内容,如果未能解决你的问题,请参考以下文章