トップページに戻る    次の競技プログラミングの問題へ    前の競技プログラミングの問題へ

ABC-039-B エージェント高橋君

■■■問題■■■

TK国のエージェントである高橋君は、とある正整数Xを青木君から受け取りました。
しかし実は青木君はAO国のスパイであり、
本来渡すべき正整数を4乗したものを渡していました。

つまり、本来渡すべき正整数をNとすると、X= (Nの4乗) です。

高橋君は非常に優秀なのでこれを見破りましたが、
計算が苦手なので元の正整数、つまりNはなんだったのかがわかりません。
なので代わりにあなたがNを求めてください。

■■■入力■■■

X

●1 <= X <= 10億
●X=(Nの4乗) となるNが ただ一つのみ存在する

■■■出力■■■

1行にNを出力せよ。


C#のソース

using System;
using System.Collections.Generic;

class Program
{
    static string InputPattern = "InputX";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("1");
            //1
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("981506241");
            //177
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("390625");
            //25
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();
        int X = int.Parse(InputList[0]);

        for (int I = 1; I * I * I * I <= X; I++) {
            if (I * I * I * I == X) {
                Console.WriteLine(I);
                break;
            }
        }
    }
}


解説

1からのForループで、4乗を順次計算してます。