fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define fast ios::sync_with_stdio(false); cin.tie(nullptr);
  5. #define ll long long
  6. #define endl '\n'
  7. #define all(v) (v).begin(), (v).end()
  8. #define rall(v) (v).rbegin(), (v).rend()
  9.  
  10. const int oo = 1e9;
  11. const ll INF = 1e18;
  12. const ll MOD = 1e9+7;
  13. const int N = 1e6;
  14.  
  15. long long binpow(long long a, long long b, long long m) {
  16. a %= m;
  17. long long res = 1;
  18. while (b > 0) {
  19. if (b & 1)
  20. res = res * a % m;
  21. a = a * a % m;
  22. b >>= 1;
  23. }
  24. return res;
  25. }
  26.  
  27.  
  28.  
  29. void solve(){
  30. int n ; cin >> n;
  31. ll dp[n+1];
  32. vector<int> freq(n+1), cnt(n+1);
  33. for(int i = 1; i <= n; i++){
  34. int x;
  35. cin >> x;
  36. freq[x]++;
  37. }
  38.  
  39. for(int i = 1; i <= n; i++){
  40. for(int j = i; j <= n; j += i){
  41. cnt[i] = (cnt[i]%MOD + freq[j]%MOD)%MOD;
  42. }
  43. }
  44.  
  45. for(int i = n; i >= 1; i--){
  46. dp[i] = (binpow(2, cnt[i], MOD) - 1 + MOD) % MOD;
  47. for(int j = 2*i; j <= n; j += i){
  48. dp[i] = (dp[i] - dp[j] + MOD) % MOD;
  49. }
  50. }
  51.  
  52. for(int i = 1; i <= n; i++){
  53. cout << dp[i] << '\n';
  54. }
  55. }
  56.  
  57.  
  58. int main(){
  59.  
  60. fast
  61.  
  62. int t = 1; //cin >> t;
  63.  
  64. while(t--) solve();
  65. }
  66.  
  67. /*
  68.  * at least and exact
  69.  * 1 2 3 4 5 6 7 8 9 10
  70.  * gcd = 10 -> 2^(10/10)-1 = 1 -> {10}
  71.  * gcd = 9 -> 2^(10/9)-1 = 1 -> {9}
  72.  * gcd = 8 -> 2^(10/8)-1 = 1 -> {8}
  73.  * gcd = 7 -> 2^(10/7)-1 = 1 -> {7}
  74.  * gcd = 6 -> 2^(10/6)-1 = 1 -> {6}
  75.  * gcd = 5 -> 2^(10/5)-1 - gcd(10) = 3-1 = 2 -> {5} {5 10}
  76.  * gcd = 4 -> 2^(10/4)-1 - gcd(8) = 3-1 = 2 -> {4} {4 8}
  77.  * gcd = 3 -> 2^(10/3)-1 - gcd(6) - gcd(9) = 7-1-1 = 5 -> {3} {3 6} {3 9} {6 9} {3 6 9}
  78.  * gcd = 2 -> 2^(10/2)-1 - gcd(4) - gcd(6)-gcd(8) - gcd(10) = 31-2-1-1-1 = 26
  79.  */
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0