zoukankan      html  css  js  c++  java
  • 洛谷 P1029 最大公约数和最小公倍数问题

    洛谷 P1029 最大公约数和最小公倍数问题

    题意

    给你两个数a,b,让你求有多少对数,他们的最大公约数是a,最小公倍数是b。

    解题思路

    首先,要知道(a*b)等于满足条件的两个数的乘积,因此我们可以让 $ i $ 从1开始(另一个数是(a*b/i))进行遍历,如果第二个数能够被整除,并且这两个数最大公约数是a,那么就是满足条件的两个数。

    还有一个思路是说我们可以从a开始遍历,每次加a,另一个数也和上面求法一样。因为最小的数一定是从a开始的。

    这样代码就很容易写出来了。

    代码实现

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    
    int main()
    {
    	int x, y, tmp, ans=0;
    	scanf("%d%d", &x, &y);
    	tmp=x*y;
    	for(int i=1; i<=y; i++)
    	{
    		if(tmp%i==0 && __gcd(i, tmp/i)==x)
    		{
    			ans++;
    		}
    	}
    	printf("%d
    ", ans);
    	return 0;
     } 
    
    欢迎评论交流!
  • 相关阅读:
    第九周实验总结
    第八周总结
    第七周课程总结&实验报告
    第六周java学习总结
    第五周编程总结
    第四周课程总结
    第三周课程总结实验报告
    java学习总结
    2019春总结作业
    pta编程总结1
  • 原文地址:https://www.cnblogs.com/alking1001/p/11454996.html
Copyright © 2011-2022 走看看