SSL2683 2017年8月12日提高组T2 YMW的数学题(math)
2017-08-13 19:47
295 查看
2017年8月12日提高组T2 YMW的数学题
DescriptionYMW最近迷上了数学,听BPM说,善于思考的孩纸才是好孩纸呢,于是他一边看书,一边开始思考些问题。他看到书上说枚举是最强大的算法,他很不服气,思考片刻,便想出一道题,如果我们有两个正整数a,b,那会有多少对数,满足他们之间的最大公因数是a,最小公倍数是b呢?而你是暴力的最忠实粉丝,你能用枚举进行解决吗?
Input
多组数据,每组数据只有一行,每行两个正整数a,b
以输入文件结束结尾
Output
每组数据输出一个整数,表示符合的有多少对,每组数据占一行
分析:其实只要对其中一个数b进行枚举就好了,另一个数可以用a=n*m/b;但是,要对a进行判断,因为a不一定为整。
代码
#include <cstdio> using namespace std; int x,y; int gcd(int p,int q) { int r=p%q; while (r!=0) { p=q; q=r; r=p%q; } return q; } int main() { while (~scanf("%d%d",&x,&y)) { int ans=0; for (int i=y;i>=x;i--) { double a=(x * 1.0) * (y * 1.0) / (i * 1.0); if (i-(int)i<1e-6) { int aa=(int)a; if (aa*i==x*y&&gcd(aa,i)==x) ans++; } } printf("%d\n",ans); } }
相关文章推荐
- 2017年8月12日提高组T2 YMW的数学题
- SSL2684 2017年8月12日提高组T3 YMW的三角形(math)
- 【SSLGZ 2682】2017年8月12日提高组T1 YMW的杯子
- 2017年8月12日提高组T1 YMW的杯子
- SSL2790 2017年10月25日提高组T2 次方的运算(math)
- NOIP16提高组赛前训练20-day2 T2:种花 flower(组合数学)
- 2017年8月12日提高组T1 YMW的杯子
- SSL2810 2017年10月30日提高组T2 数论(math)
- SSL2682 2017年8月12日提高组T1 YMW的杯子(dfs)
- 2016 UESTC Training for Math Problem A-谭爷的黑暗沙拉(组合数学)
- [NOIP2011](提高组)D1 T2 选择客栈
- 【SSLGZ 2677】2017年8月10号提高组T2 飞行
- 【Foreign】tty的方程math [数学]
- gre提高:如何提高数学、阅读与写作
- VC++ 数学公式及格式转欢 math.h、stdlib.h、string.h、float.h
- 【前缀和】【前缀MAX】洛谷 P1351 NOIP2014提高组 day1 T2 联合权值
- hdu 5170 GTY's math problem(数学)
- [LeetCode刷题笔记]Math数学类型题目(一)重写基本运算符
- 作业疑点:关于Linux下数学函数math.h无法编译问题
- NOIP2015提高组T2 子串