結果
| 問題 |
No.2576 LCM Pattern
|
| ユーザー |
|
| 提出日時 | 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;
}