最大公約數編程
『壹』 最大公約數 編程
#include <iostream.h>
int fp(int x,int y)
{
int i,k;
k=(x<y?x:y);
for(i=k;i>1;i--)
if(y%i==0&&x%i==0) break;
return i;
}
void main()
{
int a=30,b=40;
int i=fp(a,b);
cout<<i<<endl;
}
第一個錯誤提示是說:i沒有定義
第二個錯誤提示是說:main函數應該返回一個值
『貳』 c語言程序設計如何求最大公約數
具體操作步驟如下:
一、新建一個C語言源程序,使用Visual C++6.0的軟體。
『叄』 c語言程序設計編程最大公約數的程序怎麼寫
#include <stdio.h>
int main()
{
int a,b,c,d;
printf("請輸入兩個數(用逗號分隔):");
scanf("%d,%d",&a,&b);
if(a>b)
{
if(a%b==0)
printf("%d是%d,%d的最大公約數.",b,a,b);
else
{
for(c=1;c!=b;c++)
if(a%c==0&&b%c==0)
d=c;
}
printf("%d是%d,%d的最大公約數.",d,a,b);
}
else
{
if(b%a==0)
printf("%d是%d,%d的最大公約數.",a,a,b);
else
{
for(c=1;c!=a;c++)
if(a%c==0&&b%c==0)
d=c;
}
printf("%d是%d,%d的最大公約數.",d,a,b);
}
getchar();
return 0;
}
『肆』 C語言編程,求最大公約數
把倒數第三句「i=i+1」去掉就可以得到正確的結果了,因為break之後不會執行i--操作了
或者使用輾轉相除的方法:
#include<stdio.h>
void main()
{
int m,n,temp,a,b;
printf("please input two numbers m,n=");
scanf("%d,%d",&m,&n);
a=m;
b=n;
if(a<b) //使得a為較大的數,b為較小的數
{
temp = a;
a = b;
b = temp;
}
temp = a%b;
while(temp)
{
a=b;
b=temp;
temp=a%b;
}
printf("%d,%d的最大公約數為: %d",m,n,b);
printf("%d,%d的最小公倍數為: %d",m,n,m*n/b);
}
我可以幫助你,你先設置我最佳答案後,我網路Hii教你。
『伍』 C語言程序設計如何求最大公約數
求最大公約數演算法:
(1)輾轉相除法
兩整數a和b:
① a%b得余數c
② 若c=0,則b即為兩數的最大公約數,結束
③ 若c≠0,則a=b,b=c,再回去執行①
(2)相減法
兩整數a和b:
① 若a>b,則a=a-b
② 若a<b,則b=b-a
③ 若a=b,則a(或b)即為兩數的最大公約數,結束
④ 若a≠b,則再回去執行①
(3)窮舉法:
① i= a b中的小數
② 若a,b能同時被i整除,則i即為最大公約數,結束
③ i--,再回去執行②
相關代碼:
#include<stdio.h>
intxc_gcd(inta,intb)
{
intc;
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
returnb;
}
intxj_gcd(inta,intb)
{
while(a!=b)
{
if(a>b)
a-=b;
else
b-=a;
}
returnb;
}
intqj_gcd(inta,intb)
{
inti;
i=(a>b)?a:b;
while(a%i!=0&&b%i!=0)
i--;
returni;
}
voidmain()
{
//inta=36,b=27;
//inta=27,b=36;
inta=100,b=201;
printf("a=%db=%d ",a,b);
printf("輾轉相除法求最大公約數=%d ",xc_gcd(a,b));
printf("相減法求最大公約數=%d ",xc_gcd(a,b));
printf("窮舉法求最大公約數=%d ",xc_gcd(a,b));
}
運行效果圖:
『陸』 怎麼用c語言編程求最大公約數
基本原理如下:
用歐幾里德演算法(輾轉相除法)求兩個數的最大公約數的步驟如下:
先用小的一個數除大的一個數,得第一個余數;
再用第一個余數除小的一個數,得第二個余數;
又用第二個余數除第一個余數,得第三個余數;
這樣逐次用後一個數去除前一個余數,直到余數是0為止。那麼,最後一個除數就是所求的最大公約數(如果最後的除數是1,那麼原來的兩個數是互質數)。
例如求1515和600的最大公約數,
第一次:用600除1515,商2餘315;
第二次:用315除600,商1餘285;
第三次:用285除315,商1餘30;
第四次:用30除285,商9餘15;
第五次:用15除30,商2餘0。
1515和600的最大公約數是15。
『柒』 c語言編程求最大公約數和最小公倍數
#include<stdio.h>
int
main()
{
int
m,n;
int
divisor,dividend,res;/*除數
被除數
余數*/
scanf("%d%d",&m,&n);
if(m>0&&n>0)
{
if(m>=n)
{
divisor=n;
dividend=m;
}
else
{
divisor=m;
dividend=n;
}
res=dividend%divisor;
while(res!=0)//循環體是三條語句,不加大括弧循環只執行一條語句
{
dividend=divisor;
divisor=res;
res=dividend%divisor;
}
printf("%d",divisor);
}
else
printf("error!\n");
return
0;
}
兩數相乘除以最大公約數就是最小公倍數
『捌』 用C語言編程,求兩個數m和n的最大公約數!(將步驟說明下謝謝)
//用到可輾轉相除法
#include <stdio.h>
int main()
{
int m,n; //定義倆個變數
int temp; //中間變數
scanf("%d%d",&m,&n);//讀取兩個變數的值
while(m%n!=0)//循環求最大公約數
{
temp=n;
n=m%n;
m=temp;
}
printf("%d\n",n); //列印出最大公約數
return 0;
}
『玖』 c語言編程最大公約數和最小公倍數
#include <stdio.h>
int gcd(int m,int n)
{ return n?gcd(n,m%n):m;
}
int main()
{ int a,b;
scanf("%d%d",&a,&b);
printf("Gcd(%d,%d)=%d ",a,b,gcd(a,b));
printf("Lcm(%d,%d)=%d ",a,b,a*b/gcd(a,b));
return 0;
}
『拾』 編程一個C語言程序,輸入兩個數,採用輾轉相除法來計算最大公約數
可以參考下面的代碼:
#include <stdio.h>
int main()
{
int m, n, r;
scanf ("%d%d", &m, &n);
if (m>n){r=m, m=n, n=r;}
r=n%m;
while (r!=0){
n = m;
m = r;
r = n%m;
}
printf ("%d ", m);
return 0;
}
(10)最大公約數編程擴展閱讀:
函數 scanf() 是從標准輸入流stdin(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。