ثامر أبو بلقيس
12-12-2014, 11:26 PM
السلام عليكم ورحمة الله وبركاته
قرأت هذا الموضوع المتعلق بخوارزمية تحديد
الأعداد السعيدة قلت أكتبه للاستفادة
قبل ذلك وجبت الاشارة إلى أن الأعداد السعيدة
هي تلك الأعداد التي يؤول دائما مجموع مربع أرقامها
إلى العدد 1 في مرحلة أو في عدة مراحل
مثال : نأخذ العدد 19 هل هو عدد سعيد ؟
9 مربع = 81
1 مربع = 1
مجموع مربعيهما = 82 نواصل
مربع 2 = 4
مربع 8 = 64
مجموع مريعيهما = 68 نواصل
مربع 8 = 64
مربع 6 = 36
مجموعهما = 100 نواصل
مربع 0 = 0
مربع0=0
مربع1=1
مجموعهم = 1
اذن : العدد 19 عدد سعيد :abc_138:
الخوارزمية :
function digits(n)
if n > 0 then return n % 10, digits(math.floor(n/10)) end
end
function sumsq(a, ...)
return a and a ^ 2 + sumsq(...) or 0
end
local happy = setmetatable({true, false, false, false}, {
__index = function(self, n)
self[n] = self[sumsq(digits(n))]
return self[n]
end } )
i, j = 0, 1
repeat
i, j = happy[j] and Dialog.Message("Notice", j) or (i+1) or i, j + 1
until i == 10
الأعداد التي لا تحقق المطلوب تسمى الأعداد التعيسة:abc_083:
-------- مشاهدة ممتعة -------
موفق :abc_138:
قرأت هذا الموضوع المتعلق بخوارزمية تحديد
الأعداد السعيدة قلت أكتبه للاستفادة
قبل ذلك وجبت الاشارة إلى أن الأعداد السعيدة
هي تلك الأعداد التي يؤول دائما مجموع مربع أرقامها
إلى العدد 1 في مرحلة أو في عدة مراحل
مثال : نأخذ العدد 19 هل هو عدد سعيد ؟
9 مربع = 81
1 مربع = 1
مجموع مربعيهما = 82 نواصل
مربع 2 = 4
مربع 8 = 64
مجموع مريعيهما = 68 نواصل
مربع 8 = 64
مربع 6 = 36
مجموعهما = 100 نواصل
مربع 0 = 0
مربع0=0
مربع1=1
مجموعهم = 1
اذن : العدد 19 عدد سعيد :abc_138:
الخوارزمية :
function digits(n)
if n > 0 then return n % 10, digits(math.floor(n/10)) end
end
function sumsq(a, ...)
return a and a ^ 2 + sumsq(...) or 0
end
local happy = setmetatable({true, false, false, false}, {
__index = function(self, n)
self[n] = self[sumsq(digits(n))]
return self[n]
end } )
i, j = 0, 1
repeat
i, j = happy[j] and Dialog.Message("Notice", j) or (i+1) or i, j + 1
until i == 10
الأعداد التي لا تحقق المطلوب تسمى الأعداد التعيسة:abc_083:
-------- مشاهدة ممتعة -------
موفق :abc_138: