結果
| 問題 |
No.2750 Number of Prime Factors
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-05-10 21:50:54 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 41 ms / 2,000 ms |
| コード長 | 1,000 bytes |
| コンパイル時間 | 1,885 ms |
| コンパイル使用メモリ | 196,548 KB |
| 最終ジャッジ日時 | 2025-02-21 12:37:12 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 19 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using Matrix = vector<vector<ll>>;
const int inf = 1000000000;
const ll INF = 1000000000000000000;
const ll mod = 998244353;
const ull mod_hash = (1UL << 61) - 1;
const vector<int> dx = {0, 1, 0, -1, 1, 1, -1, -1};
const vector<int> dy = {1, 0, -1, 0, 1, -1, 1, -1};
struct Eratosthenes{
int N;
vector<int> min_f;
vector<int> prime;
Eratosthenes(int N) : N(N){min_f.assign(N, 1000000000);}
void build(){
min_f[0] = 1;
min_f[1] = 1;
for (int i = 2; i < N; i++) {
for (int j = 2; i * j < N; j++) {
min_f[i * j] = min(i, min_f[i * j]);
}
}
for (int i = 0; i < N; i++) {
if (min_f[i] != inf) continue;
prime.push_back(i);
}
}
};
int main(){
ll N;cin>>N;
Eratosthenes e(1000000);
e.build();
ll now = 1;
int id = 0;
while(now <= N / e.prime[id]){
now *= e.prime[id];
id++;
}
cout << id << endl;
return 0;
}