求两个数的最大公约数(Euclid算法)
2016-02-21 22:29
239 查看
求两个数 p 和 q 的最大公约数(greatest common divisor,gcd),利用性质
如果 p > q, p 和 q 的最大公约数 = q 和 (p % q)的最大公约数。
证明:见 http://blog.csdn.net/niushuai666/article/details/7278027
运行结果
如果 p > q, p 和 q 的最大公约数 = q 和 (p % q)的最大公约数。
证明:见 http://blog.csdn.net/niushuai666/article/details/7278027
public class Euclid{ // recursive inplementation public static int gcd(int p, int q){ if(q == 0) return p; else { StdOut.println( q + " " + p % q); return gcd(q, p % q); } } // non-recursive implementation public static int gcd2(int p, int q){ while(q != 0){ int temp = q; q = p % q; p = temp; } return p; } public static void main(String[] args){ int p = Integer.parseInt(args[0]); int q = Integer.parseInt(args[1]); int d = gcd(p, q); int d2 = gcd2(p,q); StdOut.println("gcd(" + p + ", " + q + ") = " + d); StdOut.println("gcd(" + p + ", " + q + ") = " + d2); } }
运行结果
相关文章推荐
- 使用 html5 postMessage 实现跨域
- ActionBar
- 用Clion来开发wxwidigets
- C#动态调用Web服务的3种方法
- python pygame安装与使用问题
- tiny4412下的Exynos4412 iROM 启动分析
- Js实现深拷贝和浅拷贝
- andorid 短信
- 使用Clean架构开发Android应用详细指南
- An App ID with Identifier is not available. Please enter a different string
- java 多线程 CountDownLatch用法
- 工厂模式
- java基础之数组常见问题分析
- php生成图片文字水印
- 单例模式
- case...when语句使用
- PHP知识点——2
- PHP知识点——1
- C# 7 新特性-1
- 重新生成和组织索引