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

题:输入三个数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 }

//招商信用

时间: 2024-10-12 15:36:06

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

【笔试】15、输入三个整数x,y,z,请把这三个数由小到大输出。

/** * 题目:输入三个整数x,y,z,请把这三个数由小到大输出. * 时间:2015年7月29日11:01:06 * 文件:Lianxi15.java * 作者:cutter_point */ package bishi.zuixin50.t2015729; import java.io.*; public class Lianxi15 { public static void main(String [] args) { String inpath = "source/zuixin50/l

随便输入三个数,输出的是将三个数从小到大排列。

#include <stdio.h>int main(){float a,b,c,t;printf("请输入三个实数"); scanf("%f%f%f",&a,&b,&c); if(a>b) {t=a,a=b,b=t; }// 如果输入的是a大于b,那么将A,B互换值,即A大于B:如果B>A,则不进行判断. if(b>c) {t=b,b=c,c=t; }// 如果输入的是b大于c,那么将C,B互换值,即C大于B:

输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。

ASCII码排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符. 输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格. 输出 对于每组输入数据,输出一行,字符中间用一个空格分开. 样例输入 2 qwe asd 样例输出 e q w a d s #include <iostream> using namespace

编程题:用二维字符串数组实现。从键盘输入三个学生姓名,并输出。

#include<stdio.h> #include<string.h> void main() { char name[3][30]; int i; for(i=0;i<3;i++) gets(name[i]);  /*name[i]是一个一维字符数组*/ for(i=0;i<3;i++) printf("%s\n",name[i]); } 编程题:用二维字符串数组实现.从键盘输入三个学生姓名,并输出.,布布扣,bubuko.com

任意输入三个整数,按从大到小的顺序输出

#include <stdio.h> void main(){ int a,b,c,t; printf("请输入三个整数:\n"); scanf("%d,%d,%d",&a,&b,&c); if(a<b) { t=a; a=b; b=t; } if(a<c) { t=a; a=c; c=t; } if(b<c) { t=b; b=c; c=t; } printf("从大到小的排序为:%d,%d,%d&q

输入三个数,打印出中间值(即第二大值)

int max=0,middle=0,min=0; int num1=0,num2=0,num3=0; printf("请输入三个数:"); scanf("%d %d %d",&num1,&num2,&num3); max=num1>num2?num1:num2; min=num1>num2?num2:num1;//先比较两个数的大小 if (max<num3) { //和第三个数进行比较 middle=max; print

51.从键盘上输入任意两个数和一个运算符(+、-、*、/),根据输入的运算符对两个数计算,并输出结果

?#include<iostream> using namespace std; int main() { int x,y; char a; cout<<"please input two numbers: "<<endl; cin>>x>>y; cout<<"please input an operational character:"<<endl; cin>>a; s

ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)

1064: 输入三个字符串,按由小到大的顺序输出Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 471  Solved: 188[Submit][Status][Web Board] Description 输入三个字符串,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. Input 3行字符串 Output 按照从小到大输出成3行.由指针方式实现. 按照从小到大输出成3行.由引用方式实现. Sample In

OJ刷题之《输入三个整数,按由小到大的顺序输出》

题目描述 输入三个整数,按由小到大的顺序输出.分别使用指针和引用方式实现两个排序函数.在主函数中输入和输出数据. 输入 三个整数 输出 由小到大输出成一行,每个数字后面跟一个空格.由指针方式实现. 由小到大输出成一行,每个数字后面跟一个空格.由引用方式实现. 样例输入 2 3 1 样例输出 1 2 3 1 2 3 提示 主函数已给定如下,提交时不需要包含下述主函数 /* C++代码 */ int main() { void sort1(int *,int *,int *); void sort2