fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5.  
  6. const int N = 3e5 + 7;
  7. int n;
  8. int q;
  9. int a[N];
  10. int dak[2][N];
  11. bool prime[N];
  12. void sieve () {
  13. prime[0] = prime[1] = 1;
  14. for (int i = 2; i * i < N; i++) {
  15. if (!prime[i]) {
  16. for (int j = i * i; j < N; j += i) {
  17. prime[j] = 1;
  18. }
  19. }
  20. }
  21. }
  22. signed main () {
  23. ios::sync_with_stdio (false);
  24. cin.tie(0);
  25. sieve ();
  26. cin >> n >> q;
  27. for (int i = 1; i <= n; i++) {
  28. cin >> a[i];
  29. }
  30. while (q--) {
  31. int t,l,r,val;
  32. cin >> t >> l >> r >> val;
  33. dak[t - 1][l] += val;
  34. dak[t - 1][r + 1] -= val;
  35. }
  36. for (int i = 1; i <= n; i++) {
  37. dak[0][i] += dak[0][i - 1];
  38. dak[1][i] += dak[1][i - 1];
  39.  
  40. cout << dak[prime[a[i]]][i] << " ";
  41. }
  42. }
  43.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Standard output is empty