結果
問題 | No.1809 Divide NCK |
ユーザー |
👑 |
提出日時 | 2021-12-29 14:24:06 |
言語 | C (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 639 bytes |
コンパイル時間 | 112 ms |
コンパイル使用メモリ | 29,952 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-14 10:52:50 |
合計ジャッジ時間 | 1,270 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 WA * 7 |
ソースコード
#include <stdio.h>void chmin(long long* a, long long b){if (*a > b) *a = b;}int main(){long long N, K, M;scanf("%lld %lld %lld", &N, &K, &M);int i, j, k, m[100] = {};long long p[100];for (i = 2, k = 0; M / i >= i; i++) {if (M % i == 0) {p[k] = i;while (M % i == 0) {M /= i;m[k]++;}k++;}}if (M > 1) {p[k] = M;m[k++] = 1;}long long ans = 1LL << 60, tmp, X;for (i = 0; i < k; i++) {for (X = p[i], tmp = 0; 1; X *= p[i]) {tmp += N / X - (N - K) / X - K / X;if (X > N / p[i]) break;}chmin(&ans, tmp);}printf("%lld\n", ans);fflush(stdout);return 0;}