Submission #1789635
Source Code Expand
#include <iostream> #include <string> #include <cstring> #include <cstdio> #include <algorithm> #include <vector> #include <set> #include <map> #include <queue> #include <numeric> #define FOR(i, f, n) for(int (i) = (f); (i) < (n); (i)++) #define RFOR(i, f, n) for(int (i) = (f); (i) >= (n); (i)--) #define rep(i, n) for(int (i) = 0; (i) < (n); (i)++) #define rrep(i, n) for(int (i) = (n); (i) >= 0; (i)--) #define step(i, f, n, a) for(int (i) = (f); (i) < (n); (i)+=a) #define rstep(i, f, n, a) for(int (i) = (f); (i) >= (n); (i)-=a) #define p(...) printf(__VA_ARGS__); cout << endl; #define gets(x) x; cin >> x; #define puts(x) x; cout << x << endl; #define list_input(x, n) x[(n)]; for(int (i) = 0; (i) < (n); (i)++) cin >> x[i]; #define lambda(a, b, c) [](const a, const b){ return c ;} #define key(t, x, compare) [](const t& a, const t& b){ return a x compare b x ;} using namespace std; using pii = pair<int, int>; int main(){ long long result = 1; long long mod = 1000000007; int prime_count[170] = {}; //素数の数が170未満なのでこれくらい int N = 1000; //までの素数を作る int n; //入力 gets(n) int arr[N]; vector<int> prime; //各素因数の数をカウントしておく for(int i = 0; i < N; i++){ arr[i] = 1; } for(int i = 2; i < sqrt(N); i++){ if(arr[i]){ for(int j = 0; i * (j + 2) < N; j++){ arr[i *(j + 2)] = 0; } } } for(int i = 2; i < N; i++){ if(arr[i]){ prime.push_back(i); //素数表作成 } } FOR(i, 2, n+1){ //与えられた数まで int j = 0; int target = i; while(true){ if (target < prime[0]){ break; } if (target%prime[j] == 0){ // cout << target << prime[j] << j << endl; prime_count[j] +=1; target /= prime[j]; j = 0; continue; } j++; } } rep(i, sizeof(prime_count) / sizeof(prime_count[0]) ){ if (prime_count[i]){ result *= prime_count[i]+1; result %= mod; } } puts(result) }
Submission Info
Submission Time | |
---|---|
Task | C - Factors of Factorial |
User | KeitaKishida0811 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2019 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:42:27: error: ‘sqrt’ was not declared in this scope for(int i = 2; i < sqrt(N); i++){ ^