zoukankan      html  css  js  c++  java
  • c语言实践:求两个数的最大公约数

    我的思路是这样的:比如12和16这两个数。先理解一下概念,什么叫最大公约数。就是12有很多个因数,16也有很多个因数,这两堆因数中有一些重合的因数,在这些重合的因数中找到那个最大的。那么最大公约数一定是两个数的公约数,且最大公约数一定再12的因数中寻找的。OK,我们先对12求除所有的因数,那么需要一个循环,在这个循环中每次拿到12的一个因数,看它是不是16的一个因数,如果是,那么说明这个因数就是12和16的一个公因数,暂时把最大公约数设置为这个公因数,然后进行下次循环,如果能找到12和16的又一个公因数,那么就把这个公因数设置为最大公约数,直到循环结束,直接输出公因数的值就是最大公约数。

    int main()
    {
       /*
       题目:求两个数的最大公约数
       */
    
    
    
    	
    
    	int a = 0;
    	int b = 0;
    	int i = 1;
    	int great_common_divisor = 1;
    
    	scanf_s("%d %d",&a,&b);
    
    	if (a%b == 0 || b % a == 0)//如果能直接整除,那么较小的那一个就是最大公约数
    	{
    		if (a > b)
    		{
    			printf("greatest common divisor is %d",b);
    		}
    		else
    		{
    			printf("greatest common divisor is %d",a);
    		}
    
    	}
    	else
    	{
    		while(i<=a)
    		{
    			if (a%i == 0)//等于0说明找到了a的一个因数i
    			{
    				if (b%i == 0)//等于0说明找到了a和b的一个公因数
    				{
    					//把这个公因数暂时设置为最大公约数
    					great_common_divisor = i;
    				}
    
    			}
    			i++;
    		}
    		//循环结束之后,最后一次修改的那个公因数就是最大公约数
    		printf("greatest common divisor is %d",great_common_divisor);
    	}
    	
    
    
    
    
    }
    

      

  • 相关阅读:
    jquery easy ui 1.3.4 窗口,对话框,提示框(5)
    jquery easy ui 1.3.4 布局layout(4)
    4.1 avd
    android sdk 安装排错
    推荐一个非常COOL的开源相册程序!
    JQuery LazyLoad实现图片延迟加载-探究
    Js和asp.net各自设置的cookie相互读取的方法
    js html5推送 实例
    给网页添加[回到顶部]和[去底部]功能
    Session赋值(备注)
  • 原文地址:https://www.cnblogs.com/yfish/p/9629372.html
Copyright © 2011-2022 走看看