Submission #1789638
Source Code Expand
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <numeric>
#include <math.h>
#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
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
300 / 300 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
All |
sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_certain_01.txt, subtask_1_certain_02.txt, subtask_1_certain_03.txt, subtask_1_certain_04.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
1 ms |
256 KB |
sample_02.txt |
AC |
1 ms |
256 KB |
sample_03.txt |
AC |
4 ms |
384 KB |
subtask_1_certain_01.txt |
AC |
1 ms |
256 KB |
subtask_1_certain_02.txt |
AC |
1 ms |
256 KB |
subtask_1_certain_03.txt |
AC |
1 ms |
256 KB |
subtask_1_certain_04.txt |
AC |
1 ms |
256 KB |
subtask_1_rand_01.txt |
AC |
1 ms |
256 KB |
subtask_1_rand_02.txt |
AC |
1 ms |
256 KB |
subtask_1_rand_03.txt |
AC |
1 ms |
256 KB |