حل المشكلة رقم 2 – Project Euler

بسم الله الرحمن الرحيم

المشكلة 2 من Project Euler

المطلوب : مجموع القيم الزوجية الأقل من 4.000.000 في متوالية Fibonacci والتي تقبل القسمة على 3 أو 5 .

متوالية Fibonacci : متوالية كل حد فيها هو حاصل جمع الحدين السابقين له , بدءاً بالحدين 1 , 2 ( بالتالي أول عشرة حدود : 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 )

فكرة الحل : حلقة تتأكد من أن العدد قابل للقسمة على 3 و 5 و أنه أقل من 4 ملايين .

الكود :

var
 i1 , Sum : integer ;
 i2 , Tmp : integer ;

begin
 Sum := 0 ;
 i2 := 1 ;
 i1 := 0;

 repeat
 // Generating the sequence
 Tmp := i2 ;
 i2 := i2 + i1 ;
 i1 := Tmp ;

 // Checking the number
 if (Odd(i1) = False) and (i1 < 4000000) then
 Sum := i1 + Sum ;

 until i2 >= 4000000 ;

 Writeln(IntToStr(Sum)) ;
 Readln ;

end.
<strong>

ملاحظة : لم أضع حل المشكلة الأولى لأنها سهلة جداً.

وإن شاء الله سأضع حل المشكلة الثالثة والرابعة خلال الأسبوع الحالي