a53

cadouri2

a53
Feb 21st, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <fstream>
  2. #define Nmax 1001
  3. #define SQR 1001
  4. #define MOD 1000000007
  5. using namespace std;
  6.  
  7. ifstream f("cadouri2.in");
  8. ofstream g("cadouri2.out");
  9.  
  10. int n,v[Nmax],p[SQR],nrp,fr[SQR],rez;
  11.  
  12. int main()
  13. {
  14. //Ciur pana la sqrt(10^6)
  15. for (int i=2;i<SQR;i++)
  16. if (p[i]==0)
  17. {
  18. p[++nrp] = i;
  19. for (int j=i+i;j<SQR;j+=i)
  20. p[j] = 1;
  21. }
  22.  
  23. f>>n;
  24. for (int i=1;i<=n;i++)
  25. f>>v[i];
  26.  
  27. for (int i=1;i<=n;i++)
  28. {
  29. for (int j=1;j<=nrp && v[i]>1;j++)
  30. {
  31. while (v[i]%p[j]==0)
  32. {
  33. v[i]/=p[j];
  34. fr[j]++;
  35. }
  36. }
  37. }
  38.  
  39. rez = 1;
  40. for (int i=1;i<=nrp;i++)
  41. rez = (1LL * rez * (fr[i]+1))%MOD;
  42.  
  43. for (int i=1;i<=n;i++)
  44. {
  45. if (v[i]!=1)
  46. {
  47. int nr = 1;
  48. for (int j=i+1;j<=n;j++)
  49. {
  50. if (v[j]==v[i])
  51. {
  52. nr++;
  53. v[j] = 1;
  54. }
  55. }
  56. rez = (1LL * rez * (nr+1))%MOD;
  57. }
  58. }
  59.  
  60. g<<rez;
  61.  
  62. return 0;
  63. }
Add Comment
Please, Sign In to add comment