भाग्यशाली संख्याएँ कुछ विशेष पूर्णांक संख्याएँ होती हैं। मूल संख्याओं में से कुछ विशेष संख्याओं को उनके स्थान से हटा दिया जाता है। उनके मूल्य के बजाय, उनकी स्थिति के लिए, संख्याएँ हटा दी जाती हैं। जो अंक हटाए नहीं जाते, वे भाग्यशाली अंक होते हैं।
संख्या विलोपन कुछ नियम का पालन करता है। सबसे पहले, हर दूसरा नंबर हटा दिया जाता है, उसके बाद, सभी तीसरे नंबर हटा दिए जाते हैं और इसी तरह।
यहां कुछ उदाहरण दिया गया है -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 (1 – 25 all) 1 3 5 7 9 11 13 15 17 19 21 23 25 (deleting all 2nd numbers) 1 3 7 9 13 15 19 21 25 (All 3rd numbers are deleted, starting from 5) 1 3 7 9 13 15 21 25 (All 7th numbers are deleted starting from 19)
इनपुट और आउटपुट
इनपुट:यह लकी है या नहीं, यह जांचने के लिए एक नंबर लगाएं। मान लीजिए कि संख्या 13 है आउटपुट:13 एक भाग्यशाली संख्या है।
एल्गोरिदम
isLuckyNumber(number)
इनपुट - एक नंबर।
आउटपुट - जांचें कि नंबर भाग्यशाली है या नहीं।
Begin counter := 2 (It is static data, not be initialized again in recursion call) if counter > n, then return 1 if n mod counter = 0, then return 0 n := n – (n / counter) counter := counter + 1 isLuckyNumber(n) End
उदाहरण
#include <iostream> using namespace std; int counter = 2; //used during recursion bool isLuckyNumber(int n) { if(counter > n) return 1; if(n%counter == 0) return 0; n -= n/counter; //n will be next position for recursion counter++; return isLuckyNumber(n); } int main() { int x = 13; if(isLuckyNumber(x)) cout << x<<" is a lucky number."; else cout << x<<" is not a lucky number."; }
आउटपुट
13 is a lucky number.