Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma comment(linker, "/STACK:1000000000")
- #include <cctype>
- #include <iostream>
- #include <fstream>
- #include <string.h>
- #include <algorithm>
- #include <vector>
- #include <math.h>
- #include <time.h>
- #include <cmath>
- #include <vector>
- #include <queue>
- #include <deque>
- #include <map>
- #include <list>
- #include <set>
- #include <string>
- #include <iomanip>
- #include <iterator>
- #define forn(i, n) for (i64 i = 0; i < n; ++i)
- #define revn(i, n) for (i64 i = n-1; i>=0; --i)
- #define cyc(i, s, n) for (i64 i = s; i <= n; ++i)
- #define pb push_back
- #define mp(a,b) make_pair(a,b)
- #define all(x) x.begin(), x.end()
- #define F first
- #define S second
- #define eps 1e-7
- #define inf (1000*1000*1000+9)
- #define debug(x) cout << x << endl;
- using namespace std;
- typedef unsigned long long u64;
- typedef long long i64;
- typedef long double ld;
- typedef vector < i64 > vi64;
- typedef vector < u64 > vu64;
- typedef pair < i64, i64 > pi64;
- typedef vector < vi64 > graph;
- typedef int huint;
- #define huint int
- #define N 100
- vi64 p;
- void sieve()
- {
- i64 n = 1600000;
- vector<bool> prm(n+1,true);
- cyc(i, 2, n)
- if (prm[i])
- if (i*i<=n)
- for (i64 j = i*i; j<=n; j+=i)
- prm[j]=false;
- cyc(i, 2, n)
- if (prm[i])
- p.pb(i);
- }
- i64 f(i64 a)
- {
- i64 count1 = 1, count2 = 1, k = 0, i;
- if (a == 1 || a == 2)
- return a;
- while ((a & 1) == 0)
- {
- k++;
- a >>= 1;
- }
- if (a == 1)
- return k + 1;
- else
- count1 = k + 1;
- for(i = 0; i < N && p[i]*p[i] <= a; i++)
- {
- k = 0;
- while(a % p[i] == 0)
- {
- k++;
- a /= p[i];
- }
- count1 *= (k + 1);
- }
- if (a == 1)
- return count1;
- if (i < N)
- return count1 << 1;
- for(i = p[N - 1] + 2; i*i <= a; i += 2)
- {
- k = 0;
- while(a % i == 0)
- {
- k++;
- a /= i;
- }
- count2 *= (k + 1);
- }
- if (a > 1)
- count2 <<= 1;
- return count1 * count2;
- }
- int main() {
- sieve();
- i64 n;
- cin >> n;
- i64 num = 1586409;
- vi64 ans;
- vi64 nums;
- forn(i, 100000)
- {
- i64 t = f(num);
- nums.pb(num);
- ans.pb(t);
- num-=t;
- }
- reverse(all(ans));
- forn(i, n)
- cout << ans[i] << ' ';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement