結果
問題 | No.2576 LCM Pattern |
ユーザー | lanegue |
提出日時 | 2023-12-07 19:33:56 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 541 bytes |
コンパイル時間 | 2,515 ms |
コンパイル使用メモリ | 99,712 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-27 02:18:35 |
合計ジャッジ時間 | 3,528 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
import std.stdio; import std.string; import std.conv; import std.math; const ulong MOD = 998244353; void main(){ auto input = readln.chomp.split.to!(ulong[]); ulong n = input[0]; ulong m = input[1]; ulong[] p; for(auto i = 2; i ^^ 2 <= m; i += i % 2 + 1){ if(m % i) continue; p ~= 0; while(m % i == 0){ p[$ - 1]++; m /= i; } } if(m > 1){ p ~= 1; } ulong result = 1; foreach(x; p){ result *= (x + 1).powmod(n, MOD) + MOD - x.powmod(n, MOD); result %= MOD; } result.writeln; }