牛客网 - Rinne Loves Math
发布日期:2021-07-01 00:16:25 浏览次数:2 分类:技术文章

本文共 944 字,大约阅读时间需要 3 分钟。

题目链接:

时间限制: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

说明

20=4×5

25=5×5
实数范围内 √n 中 n 小于 0 没有意义。
11 是个质数。

备注:

T≤100,0<|x|≤1e7

解题思路

直接从根号n开始判断,求出最大的平方根因子。

#include 
#include
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;}

转载地址:https://lzyws739307453.blog.csdn.net/article/details/86842259 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:HDU - FATE(二维完全背包)
下一篇:牛客网 - Rinne Loves Study

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月16日 12时47分41秒