杭电水题之4143
来源:互联网 发布:breed改mac 编辑:程序博客网 时间:2024/05/01 10:20
看到这题挺简单的,只不过数字比较大,很可能会超时10^9这个数字很大,下面给出一种想法就是分解因式,
由y^2=n+x^2可得到(y-x)(y+x)=n,我们设y-x=i,那么就有y+x=n/i,这样就有2*x=n/i-i-——>x=(n/i-i)/2;
因此我们就可以写代码了,我们知道求一个数n的因子是开方的所以不会超时,(n/i是大于i的),这时候就有
直接求出来就行了。。
#include<iostream>
using namespace std;
#include<cmath>
int main()
{
int n,m,i,j,x;
cin>>n;
while(n--)
{
j=0;
cin>>m;
for(i=(int)sqrt((double)m);i>=1;i--)
if(m%i==0&&(i!=m/i)&&(m/i-i)%2==0)
//这里的i!=n/i主要是防止n刚好可以开方(比如4 ,9)
后面一个就是因为一个数n可以写成很多种a*b的形式,但是并不似每一种都满足条件,
{
j=1;
x=(m/i-i)/2;
break;
}
if(j==1)
cout<<x<<endl;
else cout<<"-1"<<endl;
}
return 0;
}
- 杭电水题之4143
- 杭电水题之2023
- 杭电水题之2030
- 杭电水题之1713
- 杭电水题之1076
- 杭电水题之1201
- 復之之理
- 博学之,审问之,慎思之,明辨之,笃行之
- 博学之,审问之,慎思之,明辨之,笃行之
- 雪,之韵,之恋,之......
- 年终总结之天涯之无敌之言论
- 万源之源之drupal 之 drupal_flush_all_caches
- 编程之美------之数字之魅
- 之记录员
- 孔乙己之
- 浩杂收之
- “##”之作用
- vc++之
- 小公司技术管理者的点滴--学习型组织
- apache配置多端口对应多个虚拟目录
- <jsp:include>和<%@include file=""%>区别
- 跨平台中对于 信号量(semaphore) 的包装
- C语言编程——控制台程序光标控制
- 杭电水题之4143
- String三个空的区别
- Google地图 经度 纬度 到 像素索引值 的转换公式
- 忐忑
- 初识合成孔径雷达SAR
- 跨平台中对于 条件量(condition) 的包装
- JAVA学习日记
- MyEclipse中使用SVN插件方法
- C++: Socket工作流程图(WinSock)