点此看题面

大致题意: 给定自然数\(n\),让你求出方程\(\sqrt{x-\sqrt n}+\sqrt y-\sqrt z=0\)的自然数解\(x,y,z\)的数量以及所有解\(xyz\)之和。

推式子

这道题应该不是很难。

移项可以得到:

\[\sqrt{x-\sqrt n}=\sqrt z-\sqrt y
\]

两边同时平方:

\[x-\sqrt n=y+z-2\sqrt {yz}
\]

则我们可以得出第一个结论:

当\(n\)为完全平方数,即\(\sqrt n\)为整数时,有无数组解,直接输出\(infty\)。

否则,我们可知:

\[\begin{cases}x=y+z,&①\\\sqrt n=2\sqrt{yz}&②\end{cases}
\]

其中,对于\(②\)式,我们再同时平方得到:

\[n=4yz
\]

有了这个式子,加上前面\(①\)式中得出的\(x=y+z\),我们就可以轻松得出结论:

若\(n\)不为\(4\)的倍数,则无解,直接输出"0 0"。

否则的话,我们就\(O(\frac{\sqrt n}2)\)枚举\(y\)(由原式易知\(y<z\)),然后就可以求出答案了。

具体实现详见代码。

代码

#include<bits/stdc++.h>
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
#define Reg register
#define RI Reg int
#define Con const
#define CI Con int&
#define I inline
#define W while
#define X 1000000007
#define Inc(x,y) ((x+=(y))>=X&&(x-=X))
using namespace std;
int n;
int main()
{
RI Ttot,i,ans1,ans2;scanf("%d",&Ttot);W(Ttot--)
{
if(scanf("%d",&n),(int)sqrt(n)*(int)sqrt(n)==n) {puts("infty");continue;}//若n为完全平方数,有无数组解
if(n%4) {puts("0 0");continue;}//若n不为4的倍数,无解
for(n/=4,ans1=ans2=0,i=1;1LL*i*i<=n;++i) !(n%i)&&(++ans1,Inc(ans2,1LL*n*(i+n/i)%X));//枚举y,统计答案
printf("%d %d\n",ans1,ans2);//输出
}return 0;
}

最新文章

  1. mui框架使用的过程中遇到的几个问题
  2. 加速编码的 JavaScript 库和工具
  3. ie7 用 clearfix 清除浮动时遇到的问题
  4. CGAL
  5. Android Canvas绘图详解(图文)
  6. centos6搭建VPN
  7. Tomcat--配置tomcat,使其除了接受本地访问外,拒绝其他 IP 的访问
  8. IOS SWIFT UITableView 实现简单微博列表
  9. 利用pscp命令实现linux与windows文件互传
  10. 队列的存储结构的实现(C/C++实现)
  11. 网络流学习(转载自ssw 的博客)
  12. JavaScript中全局变量和局部变量的不同
  13. Sublime Text 3 package control 解决 &quot;There are no packages available for installation&quot; 错误
  14. 关于在ROS kinetic下arbotix报错的问题
  15. tcpdump抓取mysql语句
  16. 自学Python2.8-条件(if、if...else)
  17. Core Java Fundation
  18. Jmeter—实现识别验证码登录
  19. git-常用命令一览表
  20. Alpha 冲刺报告(5/10)

热门文章

  1. python运维开发常用模块(8)EXCEL操作模块XlsxWriter
  2. LibLog 类库 分析
  3. Visual Studio 定制模板类---详细步骤
  4. ocelot性能测试
  5. 2019-11-25-如何在国内发布-UWP-应用
  6. The connection string name is missing for the MySqlSiteMapProvider
  7. wordpress 数据查询-全局注入-模板数据消费输出简图
  8. MySQL基础(二)(约束以及修改数据表)
  9. javascript 关于赋值、浅拷贝、深拷贝的个人理解
  10. vue中输入框只能输入数字