博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解方程 sqrt(x-sqrt(n))+sqrt(y)-sqrt(z)=0的所有自然数解
阅读量:6220 次
发布时间:2019-06-21

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

 解方程

小象同学在初等教育时期遇到了一个复杂的数学题,题目是这样的:

给定自然数 nn,确定关于 x, y, zx,y,z 的不定方程 \displaystyle \sqrt{x - \sqrt{n}} + \sqrt{y} - \sqrt{z} =0xn+yz=0 的所有自然数解。

当时的小象同学并不会做这道题。多年后,经过高等教育的洗礼,小象同学发现这道题其实很简单。小象同学认为你一定也会做这道题,所以把这道题留给了你。为了便于输出,你不需要输出每一组解 (x, y, z)(x,y,z),你只需要给出解的数量和所有解的 x y zxyz 之和对 (10^9+7)(109+7) 取模的值即可。注意,解的数量不对 (10^9+7)(109+7) 取模。

 

 
 

输入描述

 

输入包含多组测试数据。输入的第一行包含一个正整数 TT (1 \leq T \leq10^41T104),表示测试数据的组数。接下来依次描述每组测试数据,对于每组测试数据:

仅一行,包含一个非负整数 nn (0 \leq n \leq 2 \times 10^90n2×109),含义如题面所示。

 

输出描述

 

对于每组数据,输出一行。若方程有无穷多组自然数解,则在这一行输出 \text{``infty''}“infty”(不含引号),否则在这一行输出两个整数,其中第一个整数表示方程的解数,第二个整数表示所有解的 x y zxyz 之和对 (10^9+7)(109+7) 取模的值,这两个整数之间用恰好一个空格隔开,行末不要有多余的空格。

 

样例输入 1 

361224

样例输出 1

0 01 122 72

提示

当 n = 12n=12 时,方程唯一的解为 x = 4x=4, y = 1y=1, z = 3z=3。

当 n = 24n=24 时,方程的两组解为 x = 5x=5, y = 2y=2, z = 3z=3 和 x = 7x=7, y = 1y=1, z = 6z=6。

可以通过化简(移项,平方)得到 x=z+y,n=4zy

无解就是不为整数

但是什么时候存在无穷解呢,x=sqrt(n),y,z就可以无限取了,其实就是完全平方数

注意下sqrt向下取整的细节,然后把自己代码常数写的小一点就可以了

关于强制转换,只要有一个是位数更多的,得到的就是位数更多的,然后注意不要溢出就好了

#include
using namespace std;const int MD=1e9+7;int main(){ int T,n; scanf("%d",&T); while(T--) { scanf("%d",&n); int x=sqrt(n+0.5); if(x*x==n)printf("infty\n"); else if(n%4) printf("0 0\n"); else { n/=4; int y=sqrt(n+0.5); int num=0,ans=0; for(int i=1;i<=y;i++) if(n%i==0) ans=(ans+1LL*n*(i+n/i))%MD,num++; printf("%d %d\n",num,ans); } } return 0;}

积性函数解法,51nod1220请,这个还不会

 

 

转载于:https://www.cnblogs.com/BobHuang/p/10634350.html

你可能感兴趣的文章
mono for android software自动更新
查看>>
版本管理工具——Git和TortoiseGit(乌龟Git)
查看>>
Web登录中的信心安全问题
查看>>
MySQL Proxy 实现 MySQL 读写分离提高并发负载
查看>>
FTP 服务器 下载目录下的所有文件到本地(FTP模式 非 SFTP模式)
查看>>
JavaScript下的encode和decode
查看>>
centos 文件编码转换命令
查看>>
操丛数据
查看>>
微软windows 8.1 Preview 预览版发布下载
查看>>
linux下的Sybase安装
查看>>
Windows下无法用django连接MySQL解决办法一例
查看>>
python 学习记录
查看>>
GCMail邮件系统怎样限制内外网邮件收发?
查看>>
Linux 定制版 作秀 And 创新 ?!
查看>>
如何使用投影仪
查看>>
论个人网站备份的重要性
查看>>
Android路由框架-ARouter详解
查看>>
Android编程规范与常用技巧
查看>>
mysql java.sql.SQLException: Unknown system variab
查看>>
input=file accept 类型
查看>>