x-kom hosting

[Pascal] Algorytm, który będzie generował liczby pierwsze

Mateusz J.
utworzono
utworzono

Witam

Jak w nazwie tematu.

Chciałbym algorytm, który będzie generował liczby pierwsze z zakresu 1-100.

Język Pascal, chciałbym, aby, to było napisane jak najprościej się da, jeśli, to możliwe :)

Znalazłem parę na google, ale nie wiem jak sprawdzić, czy algorytm działa, także jakby ktoś mi powiedział byłoby fajnie :)

pozdrawiam

jesiona

EDIT

var  i : cardinal;begin  Testuj := true;  i := 2;  while i < p do	if p mod i = 0 then	begin	  Testuj := false; break;	end	else i := i + 1;end;

źródło

Czy ten algorytm jest na 100% dobry Jeśli tak, czy ktoś mógłby mi opisać co robi jaka komenda? Tak w skrócie.

NowakoV
komentarz
komentarz

O ile to nie jest cały program. to wszystko jest w porządku.

Esus
komentarz
komentarz

Chcesz wyszukiwać liczby pierwsze z zakresu, będzie ich więcej niż jeden, więc przydałaby się jakaś struktura danych. Nie znam Pascala, tak ja bym to zrobił, w pseudokodzie:

PRIME NUMBERS(ZAKRES)1 for i <- 1 to ZAKRES2   do WYNIKI[i]=13 WYNIKI[1] <- 0;4 for i <- 1 to ZAKRES5  do if WYNIKI[i]6	do for j <- 1 to j*i7	  do WYNIKI[i*j] <- 08 for i <- 1 to ZAKRES9  do if WYNIKI[i] 10  do print(i)

Powinno być dobrze.

Wcięcia formują bloki, a[] to tablica a, po if znajduje się warunek, `<-` to przypisanie wartości.

Próbowałem napisać to w Pascalu, nie wiem czy dobrze:

program prime;var i,j : integer; wyniki : Array[1..100] of boolean;begin for i:=2 to 100 do  wyniki[i] := TRUE; for i:=2 to 100 do if wyniki[i] then begin  j:=i;  while i*j<=100 do  begin   wyniki[i*j] := FALSE;   j:=j+1;  end; end;for i:=1 to 100 do if wyniki[i] then  write(i,' ');readln;end.

Edit: rozwiązanie na pewno bardziej efektywne niż przy użyciu dzielenia modulo. ;) Można ten algorytm nieco zmodyfikować by był bardziej efektywny, ale to już jak ktoś bardzo chce. :P

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.