zwracnie wartości w funkci [C]

0

Witam,
Mam takie o to zadanie:
Napisz funkcję która przyjmuje jako argument liczbę naturalną n i zwraca jako wartość najmniejszy dzielnik n większy od .
Jak wy byście to zrobili, poprosiłbym o gotowy kod jeśli to możliwe.
Pozdrawiam

0

Najłatwiej będzie chyba sprawdzać resztę z dzielenie liczb od tej podanej minimalnej do n (n też na wypadek jak by żadna nie była) , jak wyjdzie ci zero to znaczy że dzielnik czyli return sprawdzana liczba.

edit: proponuję poprawić nazwę tematu, obecna nijak ma się do problemu.

0

tam powinno być większa od 1.

0

W takim razie sprawdzić czy jest podzielna przez 2 i potem od 3 nieparzyste (3, 5, 7 itd). podzielna przez parzystą będzie też podzielna przez 2, a co za tym idzie nie ma sensu ich sprawdzać. Jak wiesz że liczba do sprawdzenia nie przekroczy określonej wartości, możesz sobie zrobić tablicę z liczbami pierwszymi do tej wartości i sprawdzać tylko je. To na pewno będzie liczba pierwsza, tyle że generowanie takowej już podczas sprawdzania spowolni proces zamiast go przyśpieszyć.

ps sprawdzanie możesz zatrzymać przy pierwiastku z szukanej liczby. Jak do niego nie znajdziesz dzielnika to znaczy że to liczba pierwsza, więc wynikiem będzie ona sama.

edit: jest jeszcze Sito Eratostenesa, ale nie wiem czy będziesz w stanie wytłumaczyć się z jego działania (zadanie jak podejrzewam do szkoły na początki programowania). Generalnie szukaj metod na wyznaczanie liczb pierwszych, tyle że tutaj szukasz dowodu że ta liczba nie jest pierwszą (najmniejszego dzielnika większego niż 1). Tak więc algorytmy trzeba będzie zmodyfikować albo inaczej interpretować wyniki

1 użytkowników online, w tym zalogowanych: 0, gości: 1