GCD(Great Common Divisor)的欧几里得算法

简介:
编号:1

C版本:
None.gif#include <stdio.h>
None.gif
ExpandedBlockStart.gif long gcd( long a, long b) {
InBlock.gif    long rem=0;
InBlock.gif    
ExpandedSubBlockStart.gif    while(b!=0)    {
InBlock.gif        rem=a%b;
InBlock.gif        a=b;
InBlock.gif        b=rem;
ExpandedSubBlockEnd.gif    }

InBlock.gif    return a;
ExpandedBlockEnd.gif}

None.gif
ExpandedBlockStart.gif int main() {
InBlock.gif    
InBlock.gif    long a=0,b=0;
InBlock.gif    
InBlock.gif    scanf("%ld,%ld",&a,&b);    
InBlock.gif    printf("The greatest common divisor of the two is : %ld",gcd(a,b));
InBlock.gif    
InBlock.gif    return 0;
ExpandedBlockEnd.gif}

None.gif
None.gif
None.gif

Java版本:
None.gif package problem1;
None.gif
None.gif import java.io.*;
None.gif
ExpandedBlockStart.gif public  class Main  {
InBlock.gif
ExpandedSubBlockStart.gif    public static void main(String[] args) {
ExpandedSubBlockStart.gif        try {
InBlock.gif            BufferedReader reader = new BufferedReader(new InputStreamReader(
InBlock.gif                    System.in));
InBlock.gif
InBlock.gif            long a = Integer.parseInt(reader.readLine());
InBlock.gif            long b = Integer.parseInt(reader.readLine());
InBlock.gif            System.out.println("The greatest common divisor of the two is "
InBlock.gif                    + gcd(a, b));
ExpandedSubBlockStart.gif        }
 catch (Exception e) {
InBlock.gif            System.out.println(e);
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif
ExpandedSubBlockStart.gif    private static long gcd(long a, long b) {
ExpandedSubBlockStart.gif        while (b != 0) {
InBlock.gif            long rem = a % b;
InBlock.gif            a = b;
InBlock.gif            b = rem;
ExpandedSubBlockEnd.gif        }

InBlock.gif        return a;
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif
本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2006/06/25/435221.html ,如需转载请自行联系原作者
相关文章
|
5天前
|
算法 数据安全/隐私保护
什么是扩展欧几里得算法?
【5月更文挑战第13天】什么是扩展欧几里得算法?
14 3
|
5天前
|
算法 Python
Python欧几里得算法找最大公约数
Python欧几里得算法找最大公约数
18 0
|
5天前
|
算法 搜索推荐 程序员
C语言第二十二练——扩展欧几里得算法
C语言第二十二练——扩展欧几里得算法
31 0
|
10月前
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
宝藏例题(欧几里得算法+素数的三种境界………)
|
8月前
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
P4057 [Code+#1]晨跑(数学分析,辗转相除法模板(欧几里得算法))
25 0
|
9月前
|
算法 Java
欧几里得算法(GCD, 辗转相除法)
欧几里得算法(GCD, 辗转相除法)
|
10月前
|
算法 搜索推荐 程序员
欧几里得算法
欧几里得算法(Euclidean algorithm)是一种计算两个数的最大公约数(Greatest Common Divisor,简称 GCD)的算法。欧几里得算法的基本思想是通过辗转相除的方式,将两个数逐步缩小,直到它们的公约数为止。欧几里得算法的时间复杂度为 O(log n)。
141 1
数论整理之欧几里得算法gcd
数论整理之欧几里得算法gcd
|
存储 算法 搜索推荐
Jave 关于部分Math类和欧几里得算法
Jave 关于部分Math类和欧几里得算法
对分查找、欧几里得算法求最大公约数
对分查找、欧几里得算法求最大公约数