Ĺadny brzuch
Witam. Mam pewien problem (zaznaczam, że paszczaka ostatni raz z rok temu włączałem ;) ), otóż napisałem (dziadowski) algorytm na wyszukiwanie kolejnej liczby pierwszej. Program dostaje najpierw liczbę danych wejściowych, następnie każdą daną po kolei (z zakresu 1-15000). W czym problem? Właśnie sam nie wiem. Oto kod:
program pierwsze; var a, n, c, i : integer; b : byte; LABEL maciek; begin readln(n); for i := 1 to n do begin readln(a); maciek: Inc(a); b := 0; for c := 1 to a do begin if (a mod c) < 1 then Inc(b); if b > 2 then goto maciek; end; writeln(a); end; end.
Nie chodzi mi o optymalizację (np. liczby parzyste itp.), ale o sprawdzenie poprawności. Z góry dzięki ;)
//edit
Znalazłem błąd. Poprostu żle zrozumiałem zadanie. Myślałem, że prorgam ma znajdować najbliższą liczbę pierwszą, większą od podanej (niekoniecznie pierwszej). Jak się okazało, podany był indeks liczby pierwszej (np. 2 - druga liczba pierwsza, czyli 3, siódma - 17, a nie 11 jak liczy program).
Znów się wypuściłem... :)
Użytkownik slavo666 edytował ten post 03 kwiecień 2006, 00:27
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
program pierwsze; var a, n, c, i : integer; b : byte; LABEL maciek; begin readln(n); for i := 1 to n do begin readln(a); maciek: Inc(a); b := 0; for c := 1 to a do begin if (a mod c) < 1 then Inc(b); if b > 2 then goto maciek; end; writeln(a); end; end.
Nie chodzi mi o optymalizację (np. liczby parzyste itp.), ale o sprawdzenie poprawności. Z góry dzięki ;)
//edit
Znalazłem błąd. Poprostu żle zrozumiałem zadanie. Myślałem, że prorgam ma znajdować najbliższą liczbę pierwszą, większą od podanej (niekoniecznie pierwszej). Jak się okazało, podany był indeks liczby pierwszej (np. 2 - druga liczba pierwsza, czyli 3, siódma - 17, a nie 11 jak liczy program).
Znów się wypuściłem... :)
Użytkownik slavo666 edytował ten post 03 kwiecień 2006, 00:27