Dãy Ulam: từ số nguyên dương n>0: nếu n=1 dừng; n chẵn -> n/2; n lẻ -> 3n+1; lặp cho đến 1.
Ví dụ: 3->10->5->16->8->4->2->1.
Ví dụ
Mã minh họa:
const num = 7;
const generateUlam = num => {
const res = [num];
if(num && num === Math.abs(num) && isFinite(num)){
while (num !== 1) {
if(num % 2){
num = 3 * num + 1;
}else{
num /= 2;
};
res.push(num);
};
}else{
return false;
};
return res;
};
console.log(generateUlam(num));
console.log(generateUlam(3));Kết quả
Đầu ra:
[ 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 ] [ 3, 10, 5, 16, 8, 4, 2, 1 ]