素因子去重
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 }

浙公网安备 33010602011771号