hdu 5974 A Simple Math Problem
来源:互联网 发布:ubuntu更换源 编辑:程序博客网 时间:2024/05/29 02:24
http://acm.hdu.edu.cn/showproblem.php?pid=5974
给出x,y,求a,b使得a+b=x,且a和b的最小公倍数是y。
已知a+b=x,a*b/gcd(a,b)=y.并且还知道gcd(a,b)=gcd(x,y),则可以得到二元方程组,解出a和b即可,当然也可能不存在解,时间是O(1),如果是暴力做必超时。
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>#include<iomanip>using namespace std;int gcd(int a,int b){return b?gcd(b,a%b):a;}int main(){int x,y;while(scanf("%d%d",&x,&y)!=EOF){int s=gcd(x,y);bool flag=0;int res=x*x-4*y*s;if(res<0){cout<<"No Solution"<<endl;continue;}else{int t=sqrt(res*1.0);if(t*t==res&&(x-t)%2==0){cout<<(x-t)/2<<" "<<x-(x-t)/2<<endl;}else if(t*t==res&&(x+t)%2==0){cout<<(x+t)/2<<" "<<x-(x+t)/2<<endl;}else{cout<<"No Solution"<<endl;}}}return 0;}
阅读全文
0 0
- hdu 5974 A Simple Math Problem
- hdu 5974 A Simple Math Problem
- hdu 5974 A Simple Math Problem
- HDU 5974 A Simple Math Problem(数论)
- hdu 5974 A Simple Math Problem
- hdu 5974 A Simple Math Problem
- hdu 5974 A Simple Math Problem
- HDU 5974 A Simple Math Problem 数学
- hdu 5974 A Simple Math Problem
- HDU 5974 A Simple Math Problem
- hdu 5974 A Simple Math Problem
- hdu 5974 A Simple Math Problem
- HDU 5974 A Simple Math Problem
- HDU-5974-A Simple Math Problem
- [HDU](5974)A Simple Math Problem ---数论
- hdu A Simple Math Problem
- A Simple Math Problem (HDU
- A Simple Math Problem HDU
- bzoj 2662: [BeiJing wc2012]冻结
- 如何快速找出一个数组中只出现一次的两个数,其他元素出现两次?保证时间复杂度O(n),空间复杂度O(1)
- AJAX提交到Handler.ashx一般处理程序返回json数据
- idea的web部署
- Conquer a New Region HDU
- hdu 5974 A Simple Math Problem
- redis安装使用配置
- 51 nod 1486 大大走格子 容斥原理+组合数学+dp
- 【Weblogic】Weblogic安装以及域配置
- (Copy)设计投入方案
- POJ1298(模拟题)
- 高性能spark
- jsp应用实例-网上答题评测系统
- 二叉树的遍历和线索线索二叉树