码迷,mamicode.com
首页 > 其他好文 > 详细

输入三个数a,b,n,输出a和b不大于n的公倍数的个数

时间:2017-09-13 23:23:32      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:max   招商   log   clu   int   count   ==   思想   大于   

题:输入三个数a,b,n,输出a和b不大于n的公倍数的所有个数。

这题的思想是先求得a和b的最大公约数,然后用a和b的积除以最大公约数,得到最小公倍数,再持续加上最小公倍数,直到超过n,记下n的个数。如:8,12,100,最大公约数为4,则最小公倍数为24。则公倍数为:24、48、72、96,即总共有4个。

代码如下:

 1 #include<iostream>
 2 #include<algorithm>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int a, b, n;
 9     cin >> a >> b >> n;
10     int minVal = min(a, b);
11     int maxVal = max(a, b);
12     int tem = 0;        //最小公倍数
13     int val = 0;        //最大公约数
14     
15     if (maxVal%minVal == 0)
16         tem = maxVal;
17     else
18     {
19         while (maxVal%minVal != 0)
20         {
21             val = maxVal%minVal;
22             maxVal = minVal;
23             minVal = val;
24         }
25         tem = a*b / minVal;
26     }
27 
28     int count = 1;
29     while (tem *count<= n)
30     {
31         count++;
32     }
33     cout <<count-1;
34     return 0;
35 }

//招商信用

输入三个数a,b,n,输出a和b不大于n的公倍数的个数

标签:max   招商   log   clu   int   count   ==   思想   大于   

原文地址:http://www.cnblogs.com/love-yh/p/7517946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!