Advertisement
a53

Factori

a53
Sep 10th, 2017
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <fstream>
  2. #define MAX 60000
  3. #define ULL unsigned long long int
  4. using namespace std;
  5. ifstream f("factori.in");
  6. ofstream g("factori.out");
  7. int Prime[MAX];
  8. ULL N;
  9.  
  10. void TabelPrime() /// Ciurul lui Eratostene
  11. {
  12. Prime[0]=Prime[1]=1;
  13. for(int i=2;i*i<MAX;++i)
  14. if(Prime[i]==0)
  15. for(int j=2;i*j<MAX;++j)
  16. Prime[i*j]=1;
  17. }
  18.  
  19. ULL Descompune(ULL N,ULL d)
  20. {
  21. ULL s=0; /// initializez contorul cu 0
  22. while(N>=d) /// cat timp d mai poate sa apara
  23. s+=N/d,N/=d;
  24. return s;
  25. }
  26.  
  27. void Rezolvare(ULL N)
  28. {
  29. ULL i=2; /// plec de la 2
  30. while(Prime[i]) /// determin primul numar prim
  31. ++i;
  32. g<<Descompune(N,i); /// determin de cate ori apare acesta in factorial
  33. for(i=i+1;i<=N;++i) /// determin pe rand celelalte numere prime<=N
  34. if(!Prime[i])
  35. g<<' '<<Descompune(N,i); /// afisez un spatiu apoi numarul de aparitii a acestuia in factorial
  36. g<<'\n';
  37. }
  38.  
  39. int main()
  40. {
  41. TabelPrime();
  42. f>>N;
  43. while(N)
  44. Rezolvare(N),f>>N;
  45. return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement