素因子去重

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

 

posted @ 2019-02-11 10:28  wydxry  阅读(258)  评论(0)    收藏  举报
Live2D