Advertisement
a53

Pereche2

a53
Feb 2nd, 2020
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define MAXN 1001
  3. using namespace std;
  4. int nfp[MAXN],n,x,v[MAXN],a,b;
  5.  
  6. int prim(int n)
  7. {
  8. if(n<2)
  9. return 0;
  10. if(n==2)
  11. return 1;
  12. if(n%2==0)
  13. return 0;
  14. for(int d=3;d*d<=n;d+=2)
  15. if(n%d==0)
  16. return 0;
  17. return 1;
  18. }
  19.  
  20. int numar_fact_prim(int n) /// numar factori primi pt. fiecare numar
  21. {
  22. if(n<2)
  23. return 0;
  24. int nr=0;
  25. if(n%2==0)
  26. {
  27. ++nr;
  28. while(n%2==0)
  29. n/=2;
  30. }
  31. int d=3;
  32. while(n>1)
  33. {
  34. if(n%d==0)
  35. {
  36. ++nr;
  37. while(n%d==0)
  38. n/=d;
  39. }
  40. else
  41. d+=2;
  42. if(n>1&&d*d>n)
  43. ++nr,n=1;
  44. }
  45. return nr;
  46. }
  47.  
  48. int main()
  49. {
  50. cin>>n;
  51. for(int i=1;i<=n;++i)
  52. {
  53. cin>>v[i]; /// memorez numere
  54. nfp[i]=numar_fact_prim(v[i]); /// memorez numarul de factori primi
  55. }
  56. for(int i=1;i<n;++i)
  57. {
  58. if(nfp[i]==nfp[i+1]) /// vecini cu acelasi numar de factori primi
  59. {
  60. if(!a) /// daca nu am gasit nicio pereche
  61. {
  62. a=v[i];
  63. b=v[i+1];
  64. }
  65. else /// am cel putin o pereche
  66. {
  67. if(v[i]+v[i+1]<=a+b) /// daca suma noii perechi e mai mica
  68. {
  69. a=v[i];
  70. b=v[i+1];
  71. }
  72. }
  73. }
  74. }
  75. if(a)
  76. cout<<a<<' '<<b;
  77. else
  78. cout<<"NU EXISTA";
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement