ثامر أبو بلقيس
26-11-2014, 02:32 PM
السلام عليكم ورحمة الله وبركاته
أنواع الأعداد الأولية كثيرة جدا و الخوارزميات الحاصلة
عليها متوفرة و لاقت اهتماما كبيرا من جل اللغات البرمجية
-------
لم أجد تسمية مناسبة لتلك الاعداد الأولية التي كلما
حذفت منها رقما من اليمين يبقى العدد أوليا دائما
مثال :
137 عدد أولي
نحذف 7 يبقى
13 أولي نحذف 3
يبقى 1 أولي
-----------------------
نحقق غربلة بهذا الكود للحصول على مجموعة
بدايتها أكبر من 0 إلى غاية طاقة عددية مناسبة لسرعة الكود
---------------------------------------------------------------------
نضمن المشروع أنبوت 1 لرقم البداية الأكبر من 0 تماما
و أنبوت 2 للنهاية من الاحسن أن يكون الفارق لا يتجاوز 4 منازل
----------------------------------------------
M =Input.GetText("Input2");
hh =""
list = {}
for i = 2, M do
list[i] = i;
end
for i = 2, M do
for j = i+1, M do
if list[j] ~= 0 and j % i == 0 then list[j] = 0 end
end
end
for i = Input.GetText("Input1"), M do
if list[i] ~= 0 then
local J = true
local l = math.floor( i / 10 )
while l > 1 do
if list[l] == 0 then
J = false
break
end
l = math.floor( l / 10 )
end
if J then
Y = i
hh=hh..Y.." "
end
end
end
---------------------------
Dialog.Message("Notice",hh);
بالتوفيق :abc_138:
أنواع الأعداد الأولية كثيرة جدا و الخوارزميات الحاصلة
عليها متوفرة و لاقت اهتماما كبيرا من جل اللغات البرمجية
-------
لم أجد تسمية مناسبة لتلك الاعداد الأولية التي كلما
حذفت منها رقما من اليمين يبقى العدد أوليا دائما
مثال :
137 عدد أولي
نحذف 7 يبقى
13 أولي نحذف 3
يبقى 1 أولي
-----------------------
نحقق غربلة بهذا الكود للحصول على مجموعة
بدايتها أكبر من 0 إلى غاية طاقة عددية مناسبة لسرعة الكود
---------------------------------------------------------------------
نضمن المشروع أنبوت 1 لرقم البداية الأكبر من 0 تماما
و أنبوت 2 للنهاية من الاحسن أن يكون الفارق لا يتجاوز 4 منازل
----------------------------------------------
M =Input.GetText("Input2");
hh =""
list = {}
for i = 2, M do
list[i] = i;
end
for i = 2, M do
for j = i+1, M do
if list[j] ~= 0 and j % i == 0 then list[j] = 0 end
end
end
for i = Input.GetText("Input1"), M do
if list[i] ~= 0 then
local J = true
local l = math.floor( i / 10 )
while l > 1 do
if list[l] == 0 then
J = false
break
end
l = math.floor( l / 10 )
end
if J then
Y = i
hh=hh..Y.." "
end
end
end
---------------------------
Dialog.Message("Notice",hh);
بالتوفيق :abc_138: