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);
	}
	




}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM