1. 程式人生 > >藍橋杯算法訓練 素因子去重

藍橋杯算法訓練 素因子去重

ring n) \n pan while pre ble class 直接

原題鏈接: http://lx.lanqiao.cn/problem.page?gpid=T513
題目意思是找到n的所有素因子,再把這些素因子相乘
1000 = 2*2*2*5*5*5 p = 2*5 =10
我們直接從2到根號n,找到一個因子即除盡
#include<iostream> #include<algorithm> #include<cstring> #include<cmath> using namespace std; typedef long long ll; int main() { ll n; ll p = 1; scanf(
"%lld",&n); int cnt=0; int a[100]; for(int i=2;i*i<=n;i++) { if(n%i==0) { while(n%i==0) n/=i; p*=i; } } if(n>1) p*=n; printf("%lld\n",p); }

藍橋杯算法訓練 素因子去重