結果

問題 No.3776 Magic Square of Product
コンテスト
ユーザー pengin_2000
提出日時 2026-10-23 22:08:44
言語 C
(gcc 15.3.0)
コンパイル:
gcc-15 -O2 -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
AC  
実行時間 232 ms / 2,500 ms
+ 331µs
コード長 857 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,413 ms
コンパイル使用メモリ 38,464 KB
実行使用メモリ 9,904 KB
最終ジャッジ日時 2026-10-23 22:09:21
合計ジャッジ時間 5,922 ms
ジャッジサーバーID
(参考情報)
judge4_0 / judge5_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include<stdio.h>
long long int dp[22];
void solve()
{
	long long int k;
	scanf("%lld", &k);
	long long int ans = 1, cnt, i;
	const long long int p = 998244353;
	for (i = 2; i * i <= k; i++)
	{
		if (k % i > 0)
			continue;
		for (cnt = 0; k % i == 0; k /= i, cnt++);
		ans = ans * dp[cnt] % p;
	}
	if (k > 1)
		ans = ans * 6 % p;
	printf("%lld\n", ans);
	return;
}
int main()
{
	long long int i, j, k, l, s, val, p = 998244353;
	for (s = 0; s < 22; s++)
	{
		dp[s] = 0;
		for (i = 0; i <= s; i++)
		{
			for (j = 0; j <= s; j++)
			{
				for (k = 0; k <= s; k++)
				{
					for (l = 0; l <= s; l++)
					{
						if (i + j > s || k + l > s || i + k > s || j + l > s)
							continue;
						val = s - (s - i - j) - (s - k - l);
						if (val >= 0)
							dp[s]++;
					}
				}
			}
		}
	}
	int t;
	scanf("%d", &t);
	for (; t > 0; t--)
		solve();
	return 0;
}
0