Submission #1871622
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
struct edge {int /*from,*/to,cost;};
typedef long long ll;
typedef pair<int,int> P;
typedef pair<pair<int,int>,int> PP;
typedef vector<int> VI;
typedef vector<long long int> VL;
typedef vector<edge> VE;
static const int MOD = 1000000007;
//static const int INF = 2147483647;
//static const long long INF = 9223372000000000000;
//static const long long INF = 9223372000000000000/2;
//static const int INF = 1000010000;
//int dx4[4] = {0,1,0,-1}, dy4[4] = {-1,0,1,0};
//int dx5[5] = {-1,0,0,0,1}, dy5[5] = {0,-1,0,1,0};
//int dx8[8] = {-1,0,1,1,1,0,-1,-1}, dy8[8] = {1,1,1,0,-1,-1,-1,0};
//int dx9[9] = {-1,0,1,1,1,0,-1,-1,0}, dy9[9] = {1,1,1,0,-1,-1,-1,0,0};
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define np next_permutation
#define pq priority_queue
#define SZ(a) int((a).size())
#define LEN(a) int((a).length())
#define MAX(a,b,c) max((a),max((b),(c)))
#define MIN(a,b,c) min((a),min((b),(c)))
#define SORT(c) sort((c).begin(),(c).end())
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,x) for(int i=0;i<(int)(x);i++)
#define REP1(i,x) for(int i=1;i<=(int)(x);i++)
#define RREP(i,x) for(int i=((int)(x)-1);i>=0;i--)
#define RREP1(i,x) for(int i=((int)(x));i>0;i--)
#define int ll
VL primes;
bool is_prime[1145];
int fact[1145] = {};
void factor(int n){
if(is_prime[n]){
fact[n]++;
return;
}
for(int i=0;primes[i]<=n;i++){
if(is_prime[n]){
fact[n]++;
return;
}
if(n%primes[i]==0){
fact[primes[i]]++;
n /= primes[i];
i--;
}
}
}
void sieve(int n){
for(int i=0;i<=n;i++) is_prime[i] = true;
is_prime[0] = is_prime[1] = false;
for(int i=2;i<=n;i++){
if(is_prime[i]){
primes.pb(i);
for(int j=2*i;j<=n;j += i) is_prime[j] = false;
}
}
return;
}
signed main(){
int n;
scanf("%lld",&n);
sieve(n);
for(int i=2;i<=n;i++) factor(i);
//REP1(i,n) printf("%lld ",fact[i]);
int ans = 1;
for(int i=1;i<=n;i++){
if(fact[i]){
ans *= fact[i]+1;
ans %= MOD;
}
}
printf("%lld\n",ans);
return 0;
}
Submission Info
Submission Time
2017-12-15 10:30:59+0900
Task
C - Factors of Factorial
User
r67pr
Language
C++14 (GCC 5.4.1)
Score
300
Code Size
2377 Byte
Status
AC
Exec Time
1 ms
Memory
256 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:76:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&n);
^
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
1 ms
256 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