C語言函式編寫,求兩個整數的最大公約數和最小公倍數

時間 2021-09-03 05:01:20

1樓:匿名使用者

編寫該程式的整體思路:分別定義最大公約數函式和最小公倍數函式,然後再main函式裡面呼叫它。c語言實現**如下:

#include

#include

int fun_gy(int,int);  //宣告最大公約數函式

int fun_gb(int,int);  //宣告最小公倍數函式

main()

int a,b,gy,gb;

printf("輸入兩個整數:\n");

scanf("%d%d",&a,&b);

gy=fun_gy(a,b);   //呼叫最大公約數函式

gb=fun_gb(a,b);  //呼叫最小公倍數函式

printf("最大公約數是:%d\n最小公倍數是:%d\n",gy,gb);

int fun_gy(int x,int y)

int z,i;

if(x>y)

z=sqrt(y);

else

z=sqrt(x);

for(i=z;i>=1;i--)

if(x%i==0&&y%i==0)

break;

return i;

}int fun_gb(int x,int y)

int z,i;

z=x*y;

for(i=x;i<=z;i++)

if(i%x==0&&i%y==0)

break;

return i;

}程式執行結果:

擴充套件資料:

這裡涉及到了最大公約數和最小公倍數的計算方法:

我們知道兩個整數的最小公倍數等於他們的乘積除以他們的最大公約數。所以關鍵還是最大公約數的計算。

輾轉相除法(求最大公約數):

假設求a,b的最大公約數,則:

(1)a除以b取餘得c,若c=0,則b即為兩數的最大公約數,輸出,結束。

(2)若c  != 0,則將b賦給a,c賦給b再返回上一步操作,繼續執行。

例如,求30和98的最大公約數,過程如下:

90%30 = 8;

30%8 = 6;

8%6 = 2;

6%2 = 0;

所以最大公約數為2。

2樓:匿名使用者

#include

void fun(int m,int n)printf("\n最大公約數%d\n最小公倍數%d\n",a,m*n/a);

}//以上為求兩個正整數最大公約數、最小公倍數的函式,以下為主函式void main()

3樓:巨思衲

新語言函式編寫求兩個整數的最大公約和最小公約,這個你可以去問老師,嗯,因為老師他們知道的比較具體,會給你們相關的回答。

用c語言編寫求兩個函式的最大公約數與最小公倍數

4樓:金魚

#include

#include

int fun_y(int,int);

int fun_b(int,int);

main()

int fun_y(int x,int y)return i;

}int fun_b(int x,int y)return i;

}以下是執行結果:

5樓:匿名使用者

#include

int max,min;

void func(int x1,int x2)else

while(temp=m_biger%m_smler)max=m_smler;

min=x1*x2/max;

}void main()

6樓:匿名使用者

#include"stdafx.h"

#include

int m;

void dayue(int a,int b);

void main()

c語言,求最大公約數和最小公倍數

7樓:匿名使用者

求最大公約數最方便的辦法是使用輾轉相除法。在c語言中可以使用條件迴圈語句來實現。

c語言程式設計寫兩個函式,分別求兩個正數的最大公約數和最小公倍數

8樓:宇宙弦弦

#include

main()

a=shu1,b=shu2;

while(b!=0)

printf("最大公約數為:%d\n",a);

printf("最小公倍數為:%d\n",shu1*shu2/a);

}就是一個簡單的碾除法。這是一個很經典的問題。

9樓:匿名使用者

這個問題太經典了,基本上每一本教材的試驗指導上都有的,樓主去查檢視咯

10樓:解溫文厙紫

#include

//求a和b最大公約數:

intyue(int

a,int

b)return

k;//返回最大公約數

}...#include

//求a和b最大公約數:

intyue(int

a,int

b)return

k;//返回最大公約數

}//求a和b的最小公倍數,引數c傳遞的是a和b的最大公約數intbei(int

a,int

b,int

c)void

main()收起

11樓:堂海風

#include

using namespace std;

int funs1(int a,int b) //求用輾轉相除法最大公約數

12樓:匿名使用者

搜相似的帖子,不下20個

13樓:匿名使用者

maxdivisor(int m,int n)return m;

}minmul(int m,int n)

main()

14樓:匿名使用者

#include

int f1(int a,int b)

else

m=a;n=b;

for(;a%m!=0||b%m!=0;m--);

return(m);

}int f2(int a,int b)

else

m=a;n=b;

for(;n%a!=0||n%b!=0;n++);

return(n);

}void main()

寫兩個函式,分別求兩個整數的最大公約數和最小公倍數,用主函式呼叫這兩個函式,並輸出結果,兩個整數由

15樓:008列出

演算法思路:

if v>u , u、v互換u為被除數

u%v求餘,餘數r不等於0

v→u  r→v 求出最大公約數r

最小公倍數l=u*v/r

程式:#include

void main ( )

int hcf(int u,int v)   /*定義呼叫函式,求最大公約數*/

while ((r=u%v)!=0)

return(v);

}int lcd(int u,int v,int h) /*定義呼叫函式,求最小公倍數*/

執行結果:

16樓:務皓昂蕤

#include

void

main()

else

if(p

intm(int

x,int

y)return(x);}

C語言程式設計 編寫程式,輸入兩個整數,利用三目運算子(條件

不管你哪美 三目運算子為a?b c即有三個參與運算的量。由條件運算子組成條件表示式的一般形式為 表示式1?表示式2 表示式3 其求值規則為 如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。條件表示式通常用於賦值語句之中。例如條件語句 if a b...

c語言編寫函式對於任意輸入的整數轉換為

include stdafx.h vc 6.0 include stdio.h include string.h include stdlib.h char mychange char p,int n p j 0 return strrev p void main void include int6...

C 求兩個整數最大公約數程式求修改

include int main int a,b,c printf 請輸入兩個正整數 n scanf d,d a,b if a b for c b c 0 c if a c 0 b c 0 printf d為最大公約數。n c break else for c a c 0 c if b c 0 a ...