1 条题解

  • 0
    @ 2024-12-18 14:07:32

    C :

    #include <stdio.h>
    
    
    long long int gcd(long long int a, long long int b) {
    	long long int temp;
    	while (b != 0) {
    		temp = b;
    		b = a % b;
    		a = temp;
    	}
    	return a;
    }
    
    
    long long int lcm(long long int a, long long int b) {
    	return a * b / gcd(a, b);
    }
    
    int main() {
    	long long int a, b, c;
    	scanf("%lld %lld %lld", &a, &b, &c);
    
    	long long int gcd1 = gcd(a, b);
    	long long int gcd2 = gcd(gcd1, c);
    
    
    
    
    	long long int lcm1 = lcm(a, b);
    	long long int lcm2 = lcm(lcm1, c);
    
    	printf("%lld %lld", gcd2, lcm2);
    
    	return 0;
    }
    

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    
    int lcd(int a, int b) {
    	return a * b / __gcd(a, b);
    }
    
    signed main() {
    //	freopen("C:\\Users\\lenovo\\Desktop\\计算机\\尝试-大二\\算法基础\\1\\3.in", "r", stdin);
    //	freopen("C:\\Users\\lenovo\\Desktop\\计算机\\尝试-大二\\算法基础\\1\\3.out", "w", stdout);
    	int a, b, c;
    	cin >> a >> b >> c;
    	int g = __gcd(a, __gcd(b, c));
    	int h = lcd(a, lcd(b, c));
    	cout << g << ' ' << h;
    	return 0;
    }
    
    

    Java :

    import java.util.Scanner;
    public class Main {
        public static void main(String[]args){
            Scanner input=new Scanner(System.in);
            long a=input.nextLong();
            long b=input.nextLong();
            long c=input.nextLong();
            As as=new As();
            long k=as.calculateGCD(a,b);
            k=as.calculateGCD(k,c);
            System.out.print(k+" ");
            System.out.println(as.calculateLCM(a,b,c));
        }
        // 定义一个方法来计算2个数的最大公约数
        public static class As {
            public long  calculateGCD(long m,long n ) {
                if (n == 0) {
                    return m;
                }
                return calculateGCD(n, m%n);
            }
    
            // 定义一个方法来计算3个数的最小公倍数
            public long calculateLCM(long a, long b, long c) {
                long gcdAB = calculateGCD(a, b);
                long lcmAB = a * b / gcdAB;
                long gcdLCM = calculateGCD(lcmAB, c);
                long lcm = lcmAB * c / gcdLCM;
                return lcm;
            }
        }
    }
    
    
    • 1

    dzy的最大公约数以及最小公倍数问题

    信息

    ID
    682
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    提交数
    4
    已通过
    3
    上传者