Napisałem program który bada czy podana liczba jest liczbą pierwszą
program badanie_czy_liczba_jest_liczba_pierwsza;
uses Crt;
var
liczba,i:longint;
czyPierwsza:boolean;
begin
czyPierwsza:=true;
writeln('Podaj liczbe: ');
readln(liczba);
clrscr;
for i:=2 to liczba-1 do
if (liczba mod i)=0 then
begin
czyPierwsza := false;
break;
end;
if (czyPierwsza=true) then
begin
writeln(liczba, ' JEST liczba pierwsza!');
end
else
begin
writeln(liczba,' NIE JEST liczba pierwsza');
end;
readln;
end.
I jak teraz przerobić żeby plik czytał liczby z pliku dane.txt gdzie są zapisane w kolumnie, i przepisywał TYLKO liczby pierwsze do pliku wynik.txt. Chodzi mi żeby była użyta pętla while, bo pętla ma działać dla nieokreślonej z góry liczby danych.
program badanie_czy_liczba_jest_liczba_pierwsza;
uses Crt,math;
var
liczba,i:longint;
czyPierwsza:boolean;
wynik, dane:text;
begin
assign(dane, 'd:\dane.txt');
assign(wynik, 'd:\wynik.txt');
reset(dane);
rewrite(wynik);
while not eof(dane) do begin
czyPierwsza:=true;
writeln('Podaj liczbe: ');
readln(dane, liczba);
clrscr;
for i:=2 to floor(sqrt(liczba)) do
if (liczba mod i)=0 then
begin
czyPierwsza := false;
end;
if (czyPierwsza=true) then
begin
writeln(wynik,liczba);
end;
end;
close(wynik);
close(dane);
readln;
end.