Advertisement
nicuvlad76

Untitled

Jan 12th, 2021
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ///descompunerea in factori primi -62
  4. /// nr - numarul de divizori
  5. /// sd -suma divizorilor
  6. /// phi -indica lui Euler = numarul de numere mai mici decat n si prime cu n
  7. int main()
  8. {
  9. long long n,d,p;
  10. int nr=1;
  11. double sd=1;
  12. double phi;
  13. cin>>n;
  14. phi=n;
  15. d=2;
  16. while(n!=1)
  17. {
  18. p=0;
  19. while(n%d==0)
  20. {
  21. p++;///puterea la care apare d
  22. n/=d;
  23. }
  24. if(p!=0)
  25. {
  26. nr*=p+1;
  27. sd*=(pow(d,p+1.)-1.)/(d-1);
  28. phi*=(d-1.)/d;
  29. }
  30.  
  31. if(d*d<n)d++;
  32. else d=n;
  33.  
  34. }
  35. cout<<"nr de divizori: "<<nr<<'\n';
  36. cout<<"suma divizori: "<<(int)sd<<'\n';
  37. cout<<"indic lui euler: "<<(int)phi<<'\n';
  38. return 0;
  39. }
  40.  
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement