Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cmath>
- #include <string>
- #include <vector>
- #include <queue>
- #include <map>
- #include <set>
- #include <bitset>
- #include <algorithm>
- #include <functional>
- #include <deque>
- #include <stack>
- #include <tuple>
- #define INF 1000000000
- #define mod 1000000007
- #define MAXN 32005
- #define PI 3.14159265358979323846
- using namespace std;
- long long delims[1000005];
- int prime[1000005];
- void factorize(int n, int m)
- {
- while(n != 1)
- {
- delims[prime[n]] += m;
- delims[prime[n]] %= mod;
- n /= prime[n];
- }
- }
- int main()
- {
- #ifndef ONLINE_JUDGE
- freopen("input.txt", "r", stdin);
- //freopen("output.txt", "w", stdout);
- #endif
- for(int i = 1; i <= 1000000; i++)
- prime[i] = i;
- for(long long i = 2; i <= 1000; i++)
- if(prime[i] == i)
- for(long long j = i * i; j <= 1000000; j += i)
- prime[j] = i;
- int n;
- scanf("%d", &n);
- long long a = 0, b = 1, c = 1;
- for(int i = n; i > 1; i--)
- {
- factorize(i, c);
- c = (a + b) % mod;
- a = b;
- b = c;
- }
- long long ans = 1;
- for(int i = 0; i <= n; i++)
- {
- //printf("%d ", delims[i]);
- ans *= (delims[i] + 1);
- ans %= mod;
- }
- //putchar('\n');
- printf("%d\n", ans);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement