Advertisement
a53

soft_prime_eu

a53
May 14th, 2020
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #include <fstream>
  2. #define N 500000
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. unsigned int P(unsigned int x) /// Calculez numarul nrd de divizori ai lui x
  7. {
  8. unsigned int nrd=1,k=x,p=0;
  9. while(!(k&1))
  10. ++p,k>>=1;
  11. nrd*=p+1;
  12. for(unsigned int d=3;d*d<=k;d+=2)
  13. {
  14. p=0;
  15. while(k%d==0)
  16. ++p,k/=d;
  17. nrd*=p+1;
  18. }
  19. if(k>1)
  20. nrd*=2;
  21. return nrd;
  22. }
  23.  
  24. int main()
  25. {
  26. unsigned int n;
  27. ifstream f("soft_prime.in");
  28. unsigned int x,nr=0;
  29. f>>n;
  30. unsigned int a[n/2+10];
  31. while(f>>x&&nr<n/2)
  32. a[nr++]=x;
  33. sort(a,a+nr);
  34. unsigned m=a[nr/2];
  35. nr=0;
  36. while(f>>x)
  37. a[nr++]=x;
  38. sort(a,a+nr);
  39. m=(int)((m+a[nr/2])/2);
  40. f.close();
  41. nr=0;
  42. ifstream f1("soft_prime.in");
  43. f1>>n;
  44. while(f1>>x)
  45. {
  46. if(x<=m)
  47. if(P(x)==2)
  48. a[nr++]=x;
  49. }
  50. sort(a,a+nr);
  51. ofstream g("soft_prime.out");
  52. for(unsigned int i=0;i<nr;++i)
  53. g<<a[i]<<' ';
  54. f1.close();
  55. nr=0;
  56. ifstream f2("soft_prime.in");
  57. f2>>n;
  58. while(f2>>x)
  59. if(x>m)
  60. if(P(x)==2)
  61. a[nr++]=x;
  62. sort(a,a+nr);
  63. for(unsigned int i=0;i<nr;++i)
  64. g<<a[i]<<' ';
  65. return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement