Hai số được gọi là nguyên tố cùng nhau (co-prime) nếu chúng không có ước số chung nào lớn hơn 1 (tức là ước chung lớn nhất là 1). Lưu ý: 1 không phải là số nguyên tố.
Ví dụ:
- 4 và 5: nguyên tố cùng nhau
- 9 và 14: nguyên tố cùng nhau
- 18 và 35: nguyên tố cùng nhau
- 21 và 57: không nguyên tố cùng nhau (có ước chung 3)
Hàm kiểm tra
const areCoprimes = (num1, num2) => {
const smaller = num1 > num2 ? num1 : num2; // Lấy số lớn hơn (se có thể tối ưu lấy min)
for (let ind = 2; ind < smaller; ind++) {
const condition1 = num1 % ind === 0;
const condition2 = num2 % ind === 0;
if (condition1 && condition2) {
return false; // Tìm thấy ước chung
}
}
return true; // Không có ước chung nào
};
// Test
console.log(areCoprimes(4, 5)); // true
console.log(areCoprimes(9, 14)); // true
console.log(areCoprimes(18, 35)); // true
console.log(areCoprimes(21, 57)); // false
Kết quả
true
true
true
false
Lưu ý về hiệu năng: Vòng lặp chạy đến smaller (số lớn hơn hai số). Có thể tối ưu bằng cách chỉ lặp đến Math.sqrt(Math.min(num1, num2)) hoặc dùng thuật toán Euclid tìm UCLN (nhanh hơn).