פורסם 2004 בינואר 2421 שנים ???איך את התוכנית הזאת אני מעביר לשימוש במשתנים מסוג LongInteger ואיך אני פותר את הבעיות במספרים הגדולים?program find;{$N+}uses wincrt;vard,m,n:double;beginn:=1;while(n<=maxlongint)do begin d:=((n*(n+1))/2); m:=sqrt(d); if round(m)=m then writeln(n:2:0,' ',m:2:0); n:=n+1; end;end.1 16 835 49204 2881189 16816930 980040391 57121====המספרים הגדולים איליהם אני לא מצליח להגיע===7997214 1130976846611179 65918161271669860 3841992001583407981 22392770419228778026 1305146304853789260175 76069501249 ??? ??? ??? ??? ??? ???
פורסם 2004 בינואר 2421 שנים השאלה שלך הועברה לתראד חדשלהבא עדיף שתפתח שאלות בתראד חדש משלך ולא תשאל אותם בתראדים של אנשים אחאיםבכל מקרה אם אתה רוצה לעבוד עם int/longint אתה צריך לעשות את השנינוי הבאif m*m=d thenבמקןםif round(m)=m thenמכייון שאתה עובד עם מספרים שלמים השורש גם יהיה מספר שלם, ככה שבשביל לבדוק אם באמת היה לך מספר ריבועי אתה בודק אםsqrt(d)^2 = d
פורסם 2004 בינואר 2621 שנים מחבר טוב אחר מאמצים רבים הצלחתי לפתור את הבעיה ו Holy תודה על ניסיונך לעזור.{Triangular Square Numbers===========================D(m)=(m*(m+1))/2D(m)=n*n n,m,D(m) are part of the natural numbers;Recursion relation------------------Let us write this relation in terms of n and m where n^2=m(m+1)/2. That is, replace x_j by 2*m_j + 1 and y_j by 2*n_j to get:Initial values (x=3, y=2): m_1=1, n_1=1Recursion: m_(j+1) = 3*m_j + 4*n_j + 1 n_(j+1) = 3*n_j + 2*m_j + 1}program findmn;uses crt;var counter,m,n,a,b,u,v:longint;begin clrscr; m:=1; n:=1; u:=1; counter:=1; writeln(counter,') ',n,' ',m);while(u<=maxlongint)and(counter<=11)do begin v:=m*n; u:=((m*(m+1)) div 2); if (u <> v) then begin inc(counter); writeln(counter,') ',n,' ',m); end; a:=(3*m)+(4*n)+1; b:=(3*n)+(2*m)+1; m:=a; n:=b; end;readln;end.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.