Advertisement
Farjana_akter

Untitled

Jul 16th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define n 20000005
  5. bool mark[n+5]={false};
  6. long long int isprime[n+5],i,j,k;
  7. vector<long long int>v;
  8.  
  9. void sieve()
  10. {
  11. mark[0]=true;
  12. mark[1]=true;
  13.  
  14. for(i=2;i*i<=n;i+=2)
  15. {
  16. if(mark[i]==false)
  17. {
  18. for(j=i*i;j<=n;j+=i)
  19. mark[j]=true;
  20. }
  21. }
  22. k=0;
  23. for(i=2;i<=n;i++)
  24. {
  25. if(mark[i]==false)
  26. isprime[k++]=i;
  27. }
  28. }
  29.  
  30. void solution(long long int a)
  31. {
  32. long long int cnt=0;
  33. v.clear();
  34. for(i=0;isprime[i]*isprime[i]<=a;i++)
  35. {
  36. if(a%isprime[i]==0)
  37. {
  38. v.push_back(i);
  39. while(a%isprime[i]==0)
  40. {
  41. a/=isprime[i];
  42. }
  43. }
  44. }
  45. if(a!=1)
  46. v.push_back(a);
  47. // sort(v.begin(),v.end());
  48. if(v.size()>1)
  49. cout<<v[v.size()-1]<<endl;
  50. else
  51. cout<<-1<<endl;
  52. }
  53.  
  54. int main()
  55. {
  56. sieve();
  57. long long int a;
  58. while(cin>>a && a)
  59. {
  60. if(a<0)
  61. a*=-1;
  62. solution(a);
  63. }
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement