Advertisement
a53

jocprim_Of2

a53
Mar 25th, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define NN 10000000
  6.  
  7. ifstream f("jocprim.in");
  8. ofstream g("jocprim.out");
  9.  
  10. int v[NN + 1];
  11.  
  12. int maxPrimeFactors(int n)
  13. {
  14. int maxPrime = -1;
  15. while (n % 2 == 0) {
  16. maxPrime = 2;
  17. n >>= 1;
  18. }
  19. for (int i = 3; i <= sqrt(n); i += 2) {
  20. while (n % i == 0)
  21. {
  22. maxPrime = i;
  23. n = n / i;
  24. }
  25. }
  26.  
  27. if (n > 2)
  28. maxPrime = n;
  29.  
  30. return maxPrime;
  31. }
  32.  
  33. int main() {
  34.  
  35. int n, x, i, cnt = 0;
  36. f >> n;
  37. while (n--)
  38. {
  39. f >> x;
  40. if(v[maxPrimeFactors(x)]==0)
  41. cnt++;
  42. v[maxPrimeFactors(x)]++;
  43. }
  44. g << cnt << '\n'; //afisam numarul de perechi
  45. for (i = 2; i <= NN; i++) //afisam perechile
  46. if (v[i]) //daca i este cel mai mare divizor prim pentru cel putin unul din termenii sirului
  47. g << i << " " << v[i] << '\n'; // afisam i si frecventa acestuia
  48.  
  49. f.close();
  50. g.close();
  51.  
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement