算法训练 素因子去重
1 #include <iostream> 2 #include <cstdio> 3 #include <set> 4 using namespace std; 5 long long n; 6 bool test(long long x) 7 { 8 int flag=true; 9 for(long long i=2;i*i<=x;i++){ 10 if(x%2==0){ 11 flag=true; 12 break; 13 } 14 } 15 return flag; 16 } 17 int main() 18 { 19 cin>>n; 20 long long sum=1; 21 for(int i=2;i<=n;i++){ 22 if(n%i==0&&test(i)){ 23 sum*=i; 24 while(n){ 25 if(n%i==0) n/=i; 26 else break; 27 } 28 } 29 } 30 cout<<sum<<endl; 31 return 0; 32 }

浙公网安备 33010602011771号