गणितज्ञ उलम ने किसी भी पॉजिटिव इंटीजर n (n>0) से नंबरों की सीक्वेंस जनरेट करने का प्रस्ताव दिया:
यदि n 1 है, तो यह रुक जाएगा। यदि n सम है, तो अगला नंबर n/2 होगा। यदि n विषम है, तो अगला नंबर 3 * n + 1 होगा। 1 तक पहुंचने तक प्रक्रिया जारी रखें।
पहले कुछ इंटीजर के लिए कुछ उदाहरण यहां हैं:
2->1 3->10->5->16->8->4->2->1 4->2->1 6->3->10->5->16->8->4->2->1 7->22->11->34->17->52->26->13->40->20->10->5->16->8->4->2->1
हमें एक JavaScript फंक्शन लिखना है जो एक नंबर लेता है और उस नंबर से शुरू होने वाली उलम सीक्वेंस लौटाता है।
उदाहरण
इसके लिए कोड होगा:
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));
आउटपुट
कंसोल में आउटपुट होगा:
[
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
]