結果
| 問題 |
No.2379 Burnside's Theorem
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-07-21 16:13:05 |
| 言語 | C# (.NET 8.0.404) |
| 結果 |
AC
|
| 実行時間 | 74 ms / 2,000 ms |
| コード長 | 1,400 bytes |
| コンパイル時間 | 7,746 ms |
| コンパイル使用メモリ | 167,556 KB |
| 実行使用メモリ | 187,124 KB |
| 最終ジャッジ日時 | 2024-09-21 18:03:42 |
| 合計ジャッジ時間 | 10,019 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 20 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (93 ms)。 MSBuild のバージョン 17.9.6+a4ecab324 (.NET) main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
using System;
using System.Collections.Generic;
using System.Linq;
public class Program{
public static void Main(){
var n = long.Parse(Console.ReadLine());
var N = (long)Math.Truncate(Math.Sqrt(n));
var k = Prime(N);
var a = new List<long>();
var c = false;
for(var i=0;i<k.Count;i++){
if(n%k[i]==0){
while(n%k[i]==0){
n /= k[i];
}
a.Add(k[i]);
}
if(n==1){
c = true;
break;
}
}
if(!c){
a.Add(n);
}
if(a.Count<=2){
Console.WriteLine("Yes");
}
else{
Console.WriteLine("No");
}
}
static List<int> Prime(long n)
{
var isPrime = new bool[n+1];
var k = new List<int>();
for (int i = 2; i <= n; i++)
{
isPrime[i] = true;
}
for (int i = 2; i * i <= n; i++)
{
if (isPrime[i])
{
for (int j = i * i; j <= n; j += i)
{
isPrime[j] = false;
}
}
}
for (int i = 2; i <= n; i++)
{
if (isPrime[i])
{
k.Add(i);
}
}
return k;
}
}