OJ1062: 最大公约数(C语言)
生活随笔
收集整理的這篇文章主要介紹了
OJ1062: 最大公约数(C语言)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
輸入兩個正整數(shù),輸出其最大公約數(shù)。
輸入
輸入兩個正整數(shù)m和n,數(shù)據(jù)之間用空格隔開。
輸出
輸出一個整數(shù),表示m和n的最大公約數(shù)。
樣例輸入 Copy
4 6
樣例輸出 Copy
2
提示
請查閱歐幾里得定理及輾轉(zhuǎn)相除法。
方法取自輾轉(zhuǎn)相除法:
#include<stdio.h> #include<math.h>int main() {int x,y,a;scanf("%d%d",&x,&y);while (a=x%y,a!=0) //逗號表達式,值為最后一個表達式的值{ x=y;y=a;}printf("%d",y);return 0; }附另一代碼供參考(未使用輾轉(zhuǎn)相除法):
#include<stdio.h> #include<math.h>int main() {int m,n,i,flag=1;scanf("%d %d",&m,&n);if(n>m)//默認m>n,否則交換數(shù)值{m=m+n;n=m-n;m=m-n;}for(i=n;i>1;i--){if(n%i==0&&m%i==0)//i遞減,算出m和n的最大因子{flag=0;break;//算出最大公約數(shù)就停止循環(huán) }}if(flag){printf("%d",1); }else{printf("%d",i);}return 0; }總結(jié)
以上是生活随笔為你收集整理的OJ1062: 最大公约数(C语言)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZZULIOJ 1090: 整数幂(多实
- 下一篇: zzulioj 1065:统计数字字符个