سلام عليكم
السؤال السابع كان أصعب مما كنت أتوقع
كان نص السؤال هو
سلام عليكم
تقبل الله منا ومنكم صالح الأعمال
الحقيقة كنت مشغولا هذا الأسبوع أنا وصديقي أحمد سعود لذلك لم أحضر خوارزمية الأسبوع ولكن لكي لا يمر فارغا كورت لكم هذه التكويرة ^_^
المطلوب هو :
إيجاد مجموع عشرة الأعداد الأولية التي تأتي تنازليا قبل العدد
977512078596485748596025489639774125036587412099999741121022541316545474654654689544512846512332132131126546546546468879798133987487945612845
وهي أصغر منه
ثم إرسال خمسةعشرة رقما الأولى من جهة اليمين كنتيجة للسؤال
مثال
9775120785964857485960254896397741250365874120999997411210225413165454746546546895445128465123321321311265465465464688797745879632541254025874
الرقم كان كبيرا واللغة الأنسب لمثل هذه الحسابات هي الحبيبة python
الجواب الصحيح هو 874879456110266
وهذه الخوارزمية هي التي تم بها الحل
#!/usr/bin/python
import random
from math import log
def powerMod(a,n,m):
num_roots_operation = int(log(n)/log(2))
all_roots_calc =[]
all_roots_calc.append(a)
count = 0
root = (a*a) % m
while count != num_roots_operation:
all_roots_calc.append(root)
root = (root * root) % m
count = count+1
bin_opr= []
N=n
while N != 0:
bin_opr.append(N%2)
N = N /2
modulo = 1
while bin_opr != [] :
if bin_opr[0] == 1:
modulo = (modulo * all_roots_calc[0] ) % m
bin_opr.pop(0)
all_roots_calc.pop(0)
return modulo
def randomInt():
while True:
ZZ = int((random.random()*1000)**(random.random()*10))
if ZZ > 2:
break
return ZZ
def gcd(a,b):
while b!=0:
t = b
b = a % b
a = t
return a
def is_prime(x):
N = x
if x < 100:
for i in range(1,x):
if gcd(x,i) != 1:
return False
return True
while N != 0:
RndINT = randomInt()
if powerMod(RndINT,x-1,x) == 0:
continue
if powerMod(RndINT,x-1,x) != 1 :
return False
N = int(N/10.)
return True
n = 0
num=977512078596485748596025489639774125036587412099999741121022541316545474654654689544512846512332132131126546546546468879798133987487945612845
somme=0
while n<10 :
num-=1
if is_prime(num) :
somme+=num
n+=1
print (somme)"ومحدش يسألني عشان أنا مش فاهم حاجة من الكلام اللي أولتو ذا" :D
الخوارزمية كتبها أحد الرياضيين وهي مجربة وأنا نفسي قد تحققت من نتائجها بالمقارنة مع مواقع التحقق من الأرقام الأولية
وقد أجاب عنه الأخوان
مصطفى
العمدة
