Advertisement
a53

Happy

a53
Nov 17th, 2018
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int cmmdc(int a,int b)
  5. {
  6. int t;
  7. while(b!=0)
  8. {
  9. t=b;
  10. b=a%b;
  11. a=t;
  12. }
  13. return a;
  14. }
  15.  
  16. int nrdiv(int n)
  17. {
  18. int p=1,d,exp=0; /// p retine numarul divizorilor
  19. if(n%2==0)
  20. {
  21. while(n%2==0)
  22. {
  23. exp++;
  24. n=n/2;
  25. }
  26. p*=(exp+1);
  27. }
  28. d=3;
  29. while(n>1)
  30. {
  31. if(n%d==0)
  32. {
  33. exp=0;
  34. while(n%d==0)
  35. {
  36. exp++;
  37. n=n/d;
  38. }
  39. p*=(exp+1);
  40. }
  41. else
  42. d+=2;
  43. if(n>1&&d*d>n)
  44. {
  45. p*=2; /// aici exp=1
  46. break;
  47. }
  48. }
  49. return p;
  50. }
  51.  
  52. int main()
  53. {
  54. int a,b,N;
  55. cin>>N;
  56. int mi=1000001,ma=0,rezultat,nd;
  57. for(int i=1;i<=N;i++)
  58. {
  59. cin>>a>>b;
  60. rezultat=cmmdc(a,b);
  61. nd=nrdiv(rezultat);
  62. if(nd%2)
  63. {
  64. if(rezultat>ma)
  65. ma=rezultat;
  66. }
  67. else
  68. {
  69. if(rezultat<mi)
  70. mi=rezultat;
  71. }
  72. }
  73. if(mi==1000001||ma==0)
  74. {
  75. cout<<"NU EXISTA";
  76. return 0;
  77. }
  78. cout<<mi<<' '<<ma<<'\n';
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement