|
@@ -0,0 +1,36 @@
|
|
|
+//
|
|
|
+// 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;
|
|
|
+}
|