3 条题解

  • 1
    @ 2024-4-9 20:18:37

    更难的都不会做了只能做简单的 #include <bits/stdc++.h>

    using namespace std;

    using ll =long long;

    //ll gcd (ll a, ll b){ // return b==0 ? a: gcd(b, a%b); // //} int main() { ll a ,b; cin >>a>>b; cout << a/ __gcd( a, b) *b;//使用 c++自带的方法 __gcb

    }

    • 0
      @ 2025-3-20 15:10:30
      /*
       思路
          思路一:
              1.由前面的欧几里得定理
              2. 最大公约数 gcd(a,b) = gcd(b,a%b)
              3. 最小公倍数 lcm(a,b) = (a*b)/gcd(a,b)
      */
      
      #include <bits/stdc++.h>
      using namespace std;
      
      long gcd(long a, long b) {
          if (b == 0) return a;
          else return gcd(b,a%b);
      }
      
      long lcm(long a, long b) {
          return a/gcd(a,b)*b;
          //在计算乘积之前先除以 GCD。避免a*b (long * long)超出范围
      }
      
      int main()
      {
          long a,b;
          cin >> a >> b;
          if ( a >= b ) cout << lcm(a,b) << endl;
          else cout << lcm(b,a) << endl;
          return 0;
      }
      
      • 0
        @ 2025-2-10 17:05:30
        // https://dashoj.com/p/93
        #include <bits/stdc++.h>
        
        using namespace std;
        typedef long long ll;
        
        ll gcd(ll a, ll b) {
        	if(b == 0) return a;
        	return gcd(b, a % b);
        }
        
        ll lcm(ll a, ll b) {
        	return a / gcd(a, b) * b;
        }
        
        int main() {
        	ll a, b;
        	cin >> a >> b;
        	cout << lcm(a, b) << endl;
        	return 0;
        }
        
        • 1

        信息

        ID
        93
        时间
        1000ms
        内存
        256MiB
        难度
        6
        标签
        递交数
        313
        已通过
        102
        上传者