牛客网 - 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月16日 12时47分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
编译型语言与解释型语言的区别及各自的优缺点【转】
2019-05-02
编译语言、解释语言与脚本语言之间的区别【转】
2019-05-02
python对于.py文件的编译和解释【转】
2019-05-02
浏览器与解释器【转】
2019-05-02
linux中的sh脚本语法【转】
2019-05-02
史上最全的Python程序员面试必备常用问题解析与答案【转】
2019-05-02
链表、头指针、头结点【转】
2019-05-02
循环列表和双向列表【转】
2019-05-02
如何在 Linux 中启用 Shell 脚本的调试模式【转】
2019-05-02
linux把文件压缩成.tar.gz的命令【转】
2019-05-02
make,makefile和脚本之间什么关系?makefile是一种脚本吗?【转】
2019-05-02
Linux内核中链表的实现与应用【转】
2019-05-02
Linux 内核通用链表学习小结【转】
2019-05-02
区别数据结构中的堆栈与内存中的堆栈的个人总结【转】
2019-05-02
六、判断两个单向链表是否相交
2019-05-02
七、两个有序链表合并(递归方式)
2019-05-02
C++拷贝构造函数(深拷贝,浅拷贝)【转】
2019-05-02
C++ 内联函数 (讲解的TM真好)【转】
2019-05-02
什么时候需要定义拷贝构造函数【转】
2019-05-02