JSK-391 公约公倍【入门】

公约公倍

输入两个正整数,求其最大公约数和最小公倍数。

输入格式

每行输入两个正整数 a,b(1≤a,b≤10^4)。

输出格式

输出两行,分别是 a,b的最大公约数和最小公倍数。

样例输入

2 3

样例输出

1

6

问题链接JSK-391 公约公倍

问题描述:(略)

问题分析

这是一个数论问题,计算最大公约数是用欧几里德算法实现的,而且是递归实现。最小公倍数则根据数论中的公式进行计算。

程序说明:(略)

参考链接:(略)

题记

数论问题是常见的程序设计问题。

功能封装到函数。

AC的C语言程序如下:

/* JSK-391 公约公倍 */

#include <stdio.h>

int gcd(int m, int n)
{
    return n == 0 ? m : gcd(n, m % n);
}

int lcm(int m, int n)
{
    return m / gcd(m, n) * n ;
}

int main(void)
{
    int a, b;

    while(~scanf("%d%d", &a, &b))
        printf("%d\n%d\n", gcd(a, b), lcm(a, b));

    return 0;
}

原文地址:https://www.cnblogs.com/tigerisland45/p/9740687.html

时间: 2024-10-17 00:10:10

JSK-391 公约公倍【入门】的相关文章

8619 公约公倍

Description 给定六个正整数a,b,c,d,e,f:问你是否存在整数既是a,b,c的最大公约的倍数,同时又是d,e,f的最小公倍数的约数. 输入格式 输入为多case输入,每个case只有一行,每行六个正整数.当输入6个0时结束. 输出格式 存在输出YES,否则输出:NO 输入样例 32 40 16 20 30 24 0 0 0 0 0 0 输出样例 YES 提示 32,40,16的最大公约数是:8:而20,30,24的最小公倍数为120,显然存在整数(如24),既是8的倍数,又是12

algorithm

几种基本算法 贪心,递归,公约公倍,二分,素因子分解,进制转换,大数. 二叉树,bfs,dfs,背包,动态规划,最短路,最小生成树,拓扑,区间最大数,表达式求值 卡特兰,斯特灵数(2类). 突然意识到了写博客的重要性,好久没写正儿八经的博客了,以后多写

计蒜客第八场

1.公约公倍 输入两个正整数,求其最大公约数和最小公倍数.  输入格式 每行输入两个正整数 a,b(1≤a,b≤10 e4  ).  输出格式 输出两行,分别是 a,b的最大公约数和最小公倍数. #include<iostream> using namespace std; int gcd(int a,int b){ if(b==0) return a; else{ return gcd(b,a%b); } } int main(){ int a,b; cin>>a>>

不太完美的四则运算

拖啊拖,终于记得把它上传了! 题目 写一个能自动生成小学四则运算题目的命令行"软件",分别满足下列各种需求.下面这些需求都可以用命令行参数的形式来指定: a.)除了整数以外,还支持真分数的运算.(例如1/6+1/8=7/24). b.)让程序能接受用户输入的答案,并判断对错.最后给出总对/错的数量. c.)逐步扩展功能和可以支持的表达式类型,最后希望能支持下面类型的题目(最多10个运算符,括号的数量不限制): 25-3*4-2/2+89=?          1/2+1/3-1/4=?

孟道骥《代数学基础》2.1&quot;分式域&quot;习题解答

1.试问一个域$\mathbb F$的分式域是什么? 解答    由于$\mathbb F$的分式域是包含他的最小的域,而$\mathbb F$本身已是域,所以说$\mathbb F$的分式域就是自己. 2.证明Gsuss整数环$\mathbb Z[\sqrt{-1}]$是交换整环,并求其分式域? 证明    由于$\mathbb Z[\sqrt{-1}]=\{a+b\sqrt{-1}|a,b\in\mathbb Z\}\subset\mathbb C$,容易验证其满足子环的两个条件,因此$\m

【初等数论】 02 - 整除与公约数

当从这里开始的时候,你的行囊里不需要太多的东西,只要会整数的加减乘除即可.东西多了不仅帮不了你,反而会成为前进的负担.正如在前两篇中一样,你需要首先抛开一切固有思维,清空大脑,带着孩童般的好奇心重新认识这个世界.由于数论经常出现于奥数和智力题中,它往往被当成一种智力游戏,但随着研究的深入,你需要建立一套理论才能看清本质.我们可以从最简单的定义出发,利用理性思维建立这些理论.做题是学习数论的必经途径,你需要在不断地思考中才能有更深刻的理解,但这里我只打算叙述最基础的思想和结论. 1. 整除 数论研

51nod1548 欧姆诺姆和糖果

思路: 只有兩種糖果,枚舉其中一種糖果的數量就可以得到一個可行解: 但總有一種糖果的數量是較少的,並且該數量小於sqrt(C): 簡單證明: 1.若有任一糖果的質量大於sqrt(C),則必定有一糖果的數量小於sqrt(C): 2.若兩種糖果質量均小於sqrt(C),則可能存在兩種糖果數量均大於sqrt(C)的解,但對於這種情況,可以做如下轉換: 因爲兩種糖果質量均小於sqrt(C),則必定可以找到一個數公倍數K(K<C),然後將K全部用其中一種糖填滿,以達到總質量不變的情況下令較少的糖果數量小於

很棒的计算机入门课程:公开课从与非门到俄罗斯方块(第二部分)

博客中的文章均为meelo原创,请务必以链接形式注明本文地址 Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) by: Noam Nisan & Shimon Schocken from: Hebrew University of Jerusalem 课程链接:https://www.coursera.org/learn/nand2tetris2/home

机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT)【转】

转自:http://blog.exbot.net/archives/2966 导语:本期公开课面向想入手ROS却又不知从何下手的小伙伴,为大家梳理好学习思路. ROS和Android一样是开源的,功能上也是相差无几,它可以提供硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理.其独特之处在于,能够支持多种语言,如C++.Python.Octave和LISP,甚至支持多种语言混合使用,这可以简化开发者的工作.因为它是基于Linux的系统,其可靠性也会更高,体积可以做到更小,适合嵌入式设