Pascal prvočísla
Zdravim,
Potřebuju poradit. Následující program nefunguje a já potřebuju najít chybu:
program Prvocisla;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i,x,y:longint;
begin
y:=2;
for i:=1 to 10000000 do
x:= 2*i*i*i-3*i*i+i+3;
while x mod y <> 0 do y:=y+1;
if y=x then writeln(x);
readln;
end.
je nezmysel (zbytocne ratas v cykle x milionkrat a vyleze to stejne len s poslednou hodnotou x). Mozno si sa mal zamyslet ze kde si chcel mat zaciatok a koniec cyklu a dat tam potom begin a end.
takže to mam udělat jak ?
A co má ten program vlastně dělat?
Určete všechna celá čísla i,2*i*i*i-3*i*i+i+3 je prvočíslo
*pro něž 2*i*i*i-3*i*i+i+3 je prvočíslo
ten program mas urobit ty, aby si sa nieco naucil. Co tam je zle uz sme ti napisali a aj som ti napisal ze co tam mas zmenit aby to slo
(potom to pojde aspon pre male cisla kym ten vyraz neprekroci 4miliardy potom nastava to co pisal nizsie Wikan)
a ten vyraz si asi najprv uprav na nejake (i+neco)(i+neco)(i+neco) a ak to je mozne takto upravit tak potom je jasny vysledok ze prvocislo bude len vtedy ak aspon 2 zo zatvoriek maju hodnotu 1. Je to skor matematicka uloha, a ne uloha pre PC. Ale da sa to aj s PC ak si stanovis rozumnejsie hranice (nemusis testovat az po milion, riesenia budu tipujem max. jednociferne, ak vobec nejake budu, a je treba brat do uvahy aj zaporne cisla)
1 000 000 000 000 000 000 000 určitě nenarveš do longint