liczny pierwsze

spider865
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 17 gru 2008, o 17:11
Płeć: Mężczyzna
Lokalizacja: wawa

liczny pierwsze

Post autor: spider865 »

witam,
szukam dowodu poprawnosci tego algorytmu sprawdzania czy to jest liczba pierwsza

Kod: Zaznacz cały

prime(n)
q:=2; Wynik:=true;
while (q< n and Wynik) do
begin
if n mod q=0 then Wynik:=false;
q := q + 1;
end;
if Wynik then "Liczba pierwza" 
else "liczba nie jest l. pierwszą"
Używaj tagów

Kod: Zaznacz cały

.
luka52[/color]
Ostatnio zmieniony 17 gru 2008, o 18:04 przez spider865, łącznie zmieniany 1 raz.
Awatar użytkownika
meninio
Użytkownik
Użytkownik
Posty: 1876
Rejestracja: 3 maja 2008, o 11:09
Płeć: Mężczyzna
Lokalizacja: Jastrzębie Zdrój
Podziękował: 5 razy
Pomógł: 467 razy

liczny pierwsze

Post autor: meninio »

Jeśli chcesz taką metodą badać czy liczba \(\displaystyle{ n}\) jest pierwsza dzieląc ją przez wszystkie liczby naturalne do \(\displaystyle{ n-1}\) i badając resztę z dzielenia to nie musisz sprawdzać podzielności do \(\displaystyle{ n-1}\) tylko wystarczy do \(\displaystyle{ \left[ \sqrt{n} \right]}\), wtedy twój algorytm będzie wykonywał mniej kroków, a więc będzie szybszy.
spider865
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 17 gru 2008, o 17:11
Płeć: Mężczyzna
Lokalizacja: wawa

liczny pierwsze

Post autor: spider865 »

ja wiem, że lepiej by było sprawdzać do sqrt(n), ale dostalem takie zadanie, ze mam udowodnić poprawność powyższego algorytmu(taki jak kod powyzej), ale nie mam pojęcia jak
Awatar użytkownika
meninio
Użytkownik
Użytkownik
Posty: 1876
Rejestracja: 3 maja 2008, o 11:09
Płeć: Mężczyzna
Lokalizacja: Jastrzębie Zdrój
Podziękował: 5 razy
Pomógł: 467 razy

liczny pierwsze

Post autor: meninio »

weź se wprowadź jakąś liczbę pierwszą i sprawdź czy algorytm działa....
spider865
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 17 gru 2008, o 17:11
Płeć: Mężczyzna
Lokalizacja: wawa

liczny pierwsze

Post autor: spider865 »

to ma być "dowód matematyczny"
Awatar użytkownika
meninio
Użytkownik
Użytkownik
Posty: 1876
Rejestracja: 3 maja 2008, o 11:09
Płeć: Mężczyzna
Lokalizacja: Jastrzębie Zdrój
Podziękował: 5 razy
Pomógł: 467 razy

liczny pierwsze

Post autor: meninio »

Wg mnie tu nie ma co udowadniać, ty po prostu w postaci algorytmu zapisałeś definicję liczby pierwszej. Tak ci ten algorytm trochę lepiej napiszę

Kod: Zaznacz cały

pierwsza:=true;
for(int i=2;i<n;i++)
 if( n % i ==0) {
    pierwsza:=false;
    break;}

if(pierwsza==true) cout<<"Liczba jest pierwsza"; else cout<<"Liczba jest złożona";
spider865
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 17 gru 2008, o 17:11
Płeć: Mężczyzna
Lokalizacja: wawa

liczny pierwsze

Post autor: spider865 »

hehe, no ja tez nie widze sensu w udowadnianiu, ale potrzebne mi to na przedmiot algorytmy i struktury danych, a dowod ma byc przeprowadzony "metamtycznie" tzn za pomoca indukcji, z twierdzenia o niezmiennikach petli itp
ODPOWIEDZ