12345678910111213141516171819202122232425262728293031323334353637 |
- //
- // Created by jal on 2019-04-01.
- #include <bits/stdc++.h>
- using namespace std;
- vector<int>prime;
- void init(int n){
- vector<bool>f(n+1, true);
- for(int i = 2; i <= n; i++){
- if(f[i]){
- prime.push_back(i);
- }
- for(int j = 0; j < prime.size() && i * prime[j] <= n; j++){
- f[i * prime[j]] = false;
- }
- }
- }
- int main(){
- int n;
- cin >> n;
- init(n);
- long long ret = 1;
- map<int, int>mp;
- for(int i = 2; i <= n; i++){
- int t = i;
- for(int j = 0; j < prime.size(); j++){
- while(t % prime[j] == 0){
- mp[prime[j]]++;
- t /= prime[j];
- }
- }
- }
- for(auto i : mp){
- ret *= (i.second + 1);
- }
- cout << ret << endl;
- }
|