Bài tập Dart - Tìm UCLN của hai số nguyên

Viết chương trình tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BSCNN) của hai số nguyên dương ab nhập từ bàn phím.

import 'dart:io';

void main() {
  stdout.write('Mời bạn nhập số nguyên thứ nhất: ');
  int a = int.parse(stdin.readLineSync()!);
  stdout.write('Mời bạn nhập số nguyên thứ hai: ');
  int b = int.parse(stdin.readLineSync()!);
  while (a != b) {
    if (a > b)
      a = a - b;
    else
      b = b - a;
  }
  print('UCLN là $a);
}

Nếu chúng ta sử dụng phép chia lấy số dư, thì cách làm như sau:

void main() {
  int a = 144;
  int b = 40;
  while (a * b != 0) {
    if (a > b) {
      a = a % b; // a = a % b
    } else {
      b = b % a;
    }
  }
  print(a + b);
}