1 条题解

  • 0
    @ 2025-4-12 21:33:29

    C :

    int gy(int n,int m)
    {
       int tem;
       while(m)
       {
         tem=m;
         m=n%m;
    	 n=tem;
       }
     return n;
    }
    int gg(int n,int m)
    {
       return m/gy(n,m)*n;
    }
    int main(int argc, char* argv[])
    {
    	int a,b;
    	while(~scanf("%d%d",&a,&b))
    	{
    	  if(a<b)
    		  printf("%d %d\n",gy(b,a),gg(b,a));
           else
    		  printf("%d %d\n",gy(a,b),gg(a,b));
    	}
    	return 0;
    }
    
    

    C++ :

    #include <iostream>
    using namespace std;
    int gcd(int x,int y)
    {
    	return y?gcd(y,x%y):x;
    }
    int lcm(int x,int y)
    {
    	return x*y/gcd(x,y);
    }
    int main()
    {
    	int x,y;
    	cin>>x>>y;
    	cout<<gcd(x,y)<<" "<<lcm(x,y); 
    	return 0;
    }
    

    Pascal :

    var i,j,k,l,m,n,r:longint;
    procedure zuidagongyueshu(q,p:longint);
    begin
     if p>q then
          begin
            l:=q;
            q:=p;
            p:=l;
          end;
          r:=q-p;
      repeat
        if r>=p then
          begin
            p:=p;
            q:=r;
          end;
        if r<=p then
          begin
            q:=p;
            p:=r;
          end;
           r:=q-p;
        until r=0;
        i:=p;
      write(q,' ');
     end;
     procedure zuixiaogongbeishu(m,n:longint);
     begin
       k:=m div i;
       l:=n div i;
       r:=k*l*i;
       for j:=i to r do
         if (j mod m=0) and (j mod n =0) then
           break;
         writeln(j);
       end;
    
    begin
      readln(m,n);
      zuidagongyueshu(m,n);
      zuixiaogongbeishu(m,n);
    end.
    
    

    Java :

    import java.util.Scanner;
    
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int a = sc.nextInt();
    		int b = sc.nextInt();
    		System.out.printf("%d %d",gcd(a,b),a*b/gcd(a,b));
    	}
    	static int gcd(int a,int b) {
    		return b==0?a:gcd(b,a%b);
    	}
    }
    

    Python :

    # coding=utf-8
    def max_g(x,y):
        if x>y:
            min_num=y
        else:
            min_num=x
        for i in range(1,min_num+1):
            if x%i==0 and y%i==0:
               g=i
        return g
    def min_g(x,y):
        if x>y:
          max_num=x
        else:
          max_num=y
        while True:
          if max_num%x==0 and max_num%y==0:
              return max_num
          else:
              max_num+=1
    
    
    import sys
    if __name__ == '__main__':
        x,y=map(int,sys.stdin.readline().strip().split())
        print(max_g(x,y),min_g(x,y))
    
    • 1

    信息

    ID
    46
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者