結果

問題 No.2896 Monotonic Prime Factors
コンテスト
ユーザー Nooko
提出日時 2026-10-28 15:35:37
言語 C++23
(gcc 15.3.0 + boost 1.92.0 + ACL)
コンパイル:
g++-15 -O2 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
TLE  
実行時間 -
コード長 1,049 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,187 ms
コンパイル使用メモリ 337,980 KB
実行使用メモリ 9,872 KB
最終ジャッジ日時 2026-10-28 15:36:03
合計ジャッジ時間 9,567 ms
ジャッジサーバーID
(参考情報)
judge5_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 2 TLE * 1 -- * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h> 

using i64 = long long; 
using u64 = unsigned long long; 
using u32 = unsigned; 

using u128 = unsigned __int128; 
using i128 = __int128; 

constexpr int mod = 998244353;

std::vector<i64> inv, facInv, fac;

void facInit(int N) {
	inv = facInv = fac = std::vector<i64> (N + 1, 1);
	for(int i = 2; i <= N; i ++) {
		fac[i] = fac[i - 1] * i % mod;
		inv[i] = mod - inv[mod % i] * (mod / i) % mod;
		facInv[i] = facInv[i - 1] * inv[i] % mod; 
	}
}

i64 nCr(int n, int r) {
	if(n < r || r < 0) return 0;
	if(n >= (int)fac.size()) facInit(n);
	return (fac[n] * facInv[r] % mod) * facInv[n - r] % mod;
}

void solve() {
	int Q; std::cin >> Q;
	i64 ans = 0;
	int Z = 0;
	while(Q --) {
		int A, B; std::cin >> A >> B;
		for(int i = 2; i * i <= A; i ++) {
			while(A % i == 0) {
				Z ++;
				A /= i;
			}
		}
		if(A > 1) Z ++;
		std::cout << nCr(Z - 1, B - 1) << "\n";
	}

} 

int main() { 
	std::ios::sync_with_stdio(false); 
	std::cin.tie(nullptr); 

	int T = 1; 
	//std::cin >> T; 

	while (T--) { 
		solve(); 
	} 
	return 0; 
}
0