算法训练 素因子去重

 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 }

 

posted @ 2019-02-27 09:11  wydxry  阅读(371)  评论(0)    收藏  举报
Live2D