最大公约数和最小公倍数的计算

来源:互联网 发布:直播实时转播软件 编辑:程序博客网 时间:2024/05/17 02:59

**********************C*******************

1.

scanf("%d%d",&i,&j);          p=i*j;          if(i<j)           //排序          {              temp=i;              i=j;              j=temp;          }          while(i%j)          {              temp=i%j;              i=j;              j=temp;          }          printf("%d %d\n",j,p/j);  //j为最大公约数,p/j为最小公倍数
2.递归求

int LCM(int a,int b){if(b==0)return a;else return LCM(b,a%b);}//求最大公约数a=a/LCM(a,b)*b;//最小公倍数,注意不要先乘再除,那样可能会超出范围,要先除再乘


********************Java**************************

1.

package pro;import java.util.*;public class Array {public static void main(String args[]){Scanner reader=new Scanner(System.in);int a=reader.nextInt();int b=reader.nextInt();if(a<b){int t=a; a=b; b=t;}int q=a*b;while(a%b!=0){int p=a%b; a=b; b=p; }System.out.println(b);  //最小公约System.out.println(q/b);  //最大公倍}}

2.递归

package exam;import java.util.*;public class mainexam {public static void main(String[] args) {Scanner reader=new Scanner(System.in);int a=reader.nextInt();int b=reader.nextInt();System.out.println(LCM(a,b)); //最小公约System.out.println(a/LCM(a,b)*b);  //最大公倍}public static int LCM(int a,int b){if(b==0) return a;else return LCM(b,a%b);}}



0 0
原创粉丝点击