C語言 如何求兩整數(shù)的最大公約數(shù)與最小公倍數(shù)
題目
用一函數(shù)求最大公約數(shù),用另一函數(shù)調用此函數(shù)求出最大公約數(shù),并用求出的最大公約數(shù)求最小公倍數(shù)。
具體要求如下:
- ①用全局變量。將最大公約數(shù)與最小公倍數(shù)設為全局變量,在主函數(shù)中輸出它們的值。
- ②不用全局變量。最大公約數(shù)和最小公倍數(shù)由被調模塊返回值。
思路
從兩個數(shù)中選一個數(shù),從這個數(shù)開始,逐步減一,當能夠同時被兩個數(shù)整除時,結束循環(huán),即為最大公約數(shù)。
最小公倍數(shù)*最大公約數(shù)=兩個數(shù)乘積。
代碼
法一
#include<stdio.h> int main() { int x,y,z,a,b,c,d,t,x_0,y_0; printf("請輸入兩個整數(shù):"); scanf("%d,%d",&x,&y); x_0=x;y_0=y; if(x<y) t=x,x=y,y=t; do { a=x%y; if(a!=0) x=y,y=a,a=x%y; }while(x%y!=0); printf("這兩個整數(shù)的最大公約數(shù)為:%d\n",y); c=x_0/y;d=y_0/y; z=y*c*d; printf("這兩個整數(shù)的最小公倍數(shù)為:%d\n",z); return 0; }
法二(局部變量)
#include<stdio.h> int yue(int a,int b) { int i,s,max_yue; for(i=a;i>0;i--) if(a%i==0&&b%i==0) {max_yue=i;break;} return(max_yue); } int bei(int a,int b) { int yue(int a,int b); int max_bei; max_bei=a*b/yue(a,b); return(max_bei); } int main() { int a,b,t,max_yue,max_bei; int yue(int a,int b); int bei(int a,int b); printf("請輸入兩個正整數(shù):"); scanf("%d,%d",&a,&b); if(a<b) {t=a;a=b;b=t;} max_yue=yue(a,b); max_bei=bei(a,b); printf("這兩個數(shù)最大公約數(shù)為:%d\n最小公倍數(shù)為:%d\n",max_yue,max_bei); }
法三(全局變量)
#include<stdio.h> int max_yue,max_bei; int yue(int a,int b) { int i; for(i=a;i>0;i--) if(a%i==0&&b%i==0) {max_yue=i;break;} return(max_yue); } int bei(int a,int b) { int yue(int a,int b); max_bei=a*b/yue(a,b); return(max_bei); } int main() { int a,b,t; int yue(int a,int b); int bei(int a,int b); printf("請輸入兩個正整數(shù):"); scanf("%d,%d",&a,&b); if(a<b) {t=a;a=b;b=t;} max_yue=yue(a,b); max_bei=bei(a,b); printf("這兩個數(shù)最大公約數(shù)為:%d\n最小公倍數(shù)為:%d\n",max_yue,max_bei); }
運行結果
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Visual Studio 2019安裝使用C語言程序(VS2019 C語言)
這篇文章主要介紹了Visual Studio 2019安裝使用C語言程序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03C++ normal_distribution高斯正態(tài)分布函數(shù)的用法示例
高斯分布也稱為正態(tài)分布(normal distribution),常用的成熟的生成高斯分布隨機數(shù)序列的方法由Marsaglia和Bray在1964年提出,這篇文章主要給大家介紹了關于C++ normal_distribution高斯正態(tài)分布函數(shù)用法的相關資料,需要的朋友可以參考下2021-07-07C語言中settimeofday函數(shù)和gettimeofday函數(shù)的使用
這篇文章主要介紹了C語言中的settimeofday函數(shù)和gettimeofday函數(shù)的使用,注意settimeofday()函數(shù)只返回0和-1,需要的朋友可以參考下2015-08-08C語言的abs()函數(shù)和div()函數(shù)你了解嗎
這篇文章主要為大家詳細介紹了C語言的abs()函數(shù)和div()函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02