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++){
                           ^