提出 #41076054
ソースコード 拡げる
#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
#include <cassert>
using namespace std;
using ll = long long;
const double pi = 3.14159265359;
const ll INF = 1LL << 60;
template<class T> inline bool chmin(T& a, T b){ if (a > b){a = b; return true;} return false;}
template<class T> inline bool chmax(T& a, T b){ if (a < b){a = b; return true;} return false;}
//using mint = modint998244353;
//using mint = modint1000000007;
//using mint = modint; // mint::set_mod(p); later
//using mint = static_modint<1000000009>;
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
ll N;
int P;
cin >> N >> P;
vector<bool> sieve(101);
vector<int> primes;
// エラトステネスの篩
for (int i = 2; i*i <= 100; i++){
if (sieve[i]) continue;
for (int j = 2; i*j <= 100; j++){
sieve[i*j] = true;
}
}
for (int i = 2; i < 100; i++){
if (!sieve[i]) primes.push_back(i);
}
// Solve
vector<ll> vec1, vec2;
vec1.push_back(1);
vec2.push_back(1);
for (int x : primes){
if (x > P) break;
if (vec1.size() > vec2.size()){
swap(vec1, vec2);
}
int sz = (int) vec1.size();
for (int i = 0; i < sz; i++){
ll v = vec1[i];
v *= x;
while (v <= N){
vec1.push_back(v);
v *= x;
}
}
}
ll ans = 0;
sort(vec2.begin(), vec2.end());
for (ll x : vec1){
ll y = N / x;
auto p = upper_bound(vec2.begin(), vec2.end(), y);
int count = (int) (p - vec2.begin());
ans += count;
}
cout << ans << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | G - P-smooth number |
| ユーザ | unnohideyuki |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 600 |
| コード長 | 1641 Byte |
| 結果 | AC |
| 実行時間 | 520 ms |
| メモリ | 58572 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | hack_01.txt, sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| hack_01.txt | AC | 520 ms | 58012 KiB |
| sample_01.txt | AC | 2 ms | 3596 KiB |
| sample_02.txt | AC | 514 ms | 58572 KiB |
| test_01.txt | AC | 3 ms | 3580 KiB |
| test_02.txt | AC | 2 ms | 3436 KiB |
| test_03.txt | AC | 2 ms | 3540 KiB |
| test_04.txt | AC | 518 ms | 58400 KiB |
| test_05.txt | AC | 434 ms | 58004 KiB |
| test_06.txt | AC | 347 ms | 50796 KiB |
| test_07.txt | AC | 273 ms | 31828 KiB |
| test_08.txt | AC | 215 ms | 28288 KiB |
| test_09.txt | AC | 175 ms | 28292 KiB |
| test_10.txt | AC | 133 ms | 24920 KiB |
| test_11.txt | AC | 98 ms | 16484 KiB |
| test_12.txt | AC | 75 ms | 14320 KiB |
| test_13.txt | AC | 57 ms | 10152 KiB |
| test_14.txt | AC | 519 ms | 58412 KiB |
| test_15.txt | AC | 438 ms | 58000 KiB |
| test_16.txt | AC | 343 ms | 50892 KiB |
| test_17.txt | AC | 464 ms | 55760 KiB |
| test_18.txt | AC | 340 ms | 50976 KiB |
| test_19.txt | AC | 492 ms | 56816 KiB |
| test_20.txt | AC | 456 ms | 55688 KiB |
| test_21.txt | AC | 360 ms | 51852 KiB |
| test_22.txt | AC | 385 ms | 52696 KiB |
| test_23.txt | AC | 452 ms | 55476 KiB |
| test_24.txt | AC | 437 ms | 54784 KiB |
| test_25.txt | AC | 447 ms | 55440 KiB |
| test_26.txt | AC | 3 ms | 3632 KiB |
| test_27.txt | AC | 2 ms | 3572 KiB |
| test_28.txt | AC | 121 ms | 16888 KiB |
| test_29.txt | AC | 6 ms | 3748 KiB |
| test_30.txt | AC | 41 ms | 9288 KiB |