Advertisement
a53

Catalin_si_greselile

a53
Jan 14th, 2017
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #include <fstream>
  2. #include <cmath>
  3. using namespace std;
  4. ifstream f("greselile.in");
  5. ofstream g("greselile.out");
  6. /// Se foloseste programarea dinamica, in dp[i] fiind raspunsul pentru nodul i.
  7. /// Se parcurge cu i de la 2 la n, si pentru fiecare multiplu a lui i(j),dp[j]=max(dp[j],dp[i])+1.
  8.  
  9. int nrdiv(int n)
  10. {
  11. int d,exp=0; // p retine numarul divizorilor
  12. if(n%2==0)
  13. {
  14. while(n%2==0)
  15. {
  16. exp++;
  17. n=n/2;
  18. }
  19. }
  20. d=3;
  21. while(n>1)
  22. {
  23. if(n%d==0)
  24. while(n%d==0)
  25. {
  26. exp++;
  27. n=n/d;
  28. }
  29. else
  30. d+=2;
  31. if(n>1&&d*d>n)
  32. {
  33. ++exp;
  34. break;
  35. }
  36. }
  37. return exp;
  38. }
  39.  
  40. int main()
  41. {
  42. int n,t,i;
  43. f>>n>>t;
  44. for(int k=0;k<t;++k)
  45. {
  46. f>>i;
  47. g<<nrdiv(i)<<'\n';
  48. }
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement