天天看點

牛客網 - Rinne Loves Math

題目連結:https://ac.nowcoder.com/acm/contest/370/J

時間限制:C/C++ 1秒,其他語言2秒

空間限制:C/C++ 262144K,其他語言524288K

64bit IO Format: %lld

題目描述

Rinne 剛剛學習了最簡二次根式,于是她想用程式實作一個。

為了簡化問題,在本題中,最簡二次根式 a√bab 的定義為:

不存在b的一個因子k s.t. ∃x∈N∗,x2=k

即根号下的數字不含平方數因子。

舉個最簡二次根式的例子:√5,√20050117

舉個不是最簡的例子:√20,√444

現在 Rinne 給了你形如 √n 的式子中的 n,讓你輸出化簡後的結果 a√b 中的 a,b,如果這樣的式子在實數範圍内沒有意義,輸出 -1。

輸入描述:

第一行一個整數 T,表示資料組數。

接下來 T 行,每行一個整數 x 表示根号下的數。

輸出描述:

輸出一共 T 行,每行兩個數表示 √x 化簡後的答案 a,b

輸入

4

20

25

-2005

11

輸出

2 5

5 1

-1

1 11

說明

備注:

解題思路

#include <math.h>
#include <stdio.h>
int main()
{
    int n, t;
    scanf("%d", &t);
    while (t--)
    {
        scanf("%d", &n);
        if (n < 0)
        {
            printf("-1\n");
            continue;
        }
        for (int i = sqrt(n); i > 0; i--)
        {
            if (!(n % (i * i)))
            {
                printf("%d %d\n", i, n / (i * i));
                break;
            }
        }
    }
    return 0;
}