[C] Program sprwdzający czy liczba jest pierwsza

Awatar użytkownika
Poszukujaca
Użytkownik
Użytkownik
Posty: 2775
Rejestracja: 21 maja 2012, o 23:32
Płeć: Kobieta
Podziękował: 1019 razy
Pomógł: 166 razy

[C] Program sprwdzający czy liczba jest pierwsza

Post autor: Poszukujaca »

Tak na zajęciach pisaliśmy program, który sprawdza, czy liczba jest pierwsza, czy nie. Bardzo proszę niech ktoś mi wyjaśni choć trochę, co oznaczają niektóre rzeczy zapisane tutaj.
Dlaczego wczytyjemy "n", "i" i "k"? Po co aż trzy zmienne?

Kod: Zaznacz cały

#include <conio.h>
#include <math.h>
main ()
{
int n,i=2,k=1;
printf ("Podaj liczbe naturalna wieksza od 2 
");
scanf ("%d", &n);
while (i<n)
{
if (n%i==0)
k=i;
i++;
}
{if (n%i==0)
k=i;
}
if (k==1)
printf ("To jest liczba pierwsza
");
else
printf ("To nie jest liczba pierwsza
");
getch ();
}
Ostatnio zmieniony 31 mar 2014, o 13:36 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
bartek118
Użytkownik
Użytkownik
Posty: 5974
Rejestracja: 28 lut 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Toruń
Podziękował: 15 razy
Pomógł: 1251 razy

[C] Program sprwdzający czy liczba jest pierwsza

Post autor: bartek118 »

Wczytujemy jedynie \(\displaystyle{ n}\). Pozostałe wymienione przez Ciebie zmienne to zmienne pomocnicze.
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10226
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2362 razy

[C] Program sprwdzający czy liczba jest pierwsza

Post autor: Dasio11 »

Poszukujaca pisze:

Kod: Zaznacz cały

...
{if (n%i==0)
k=i;
}
...
Przy okazji, ten kawałek należy wyrzucić z kodu, bo powoduje jego błędne działanie. W momencie sprawdzania warunku if( n%i == 0 ) mamy zawsze i = n, więc warunek jest prawdziwy i dokona się przypisanie k = i (=n), a tak nie powinno być.
ODPOWIEDZ