Wpis z mikrobloga

Mam zadanie ze spoj liczb pierwszych, wiem, że jest pełno rozwiązań w necie, ale chciałem jakoś po swojemu.

Wiem, że poziom dla Was zarabiających po 10k/mies śmieszny, no ale uczę się.

Powiedzcie czy ma to jakikolwiek sens i może jakieś porady.

Użytkownik podaje liczbę np. 11. Program ifem i modulo dzieli przez 2, jeśli jest reszta z dzielenia, to pomocnicza zmienna przyjmuje 1 a jak nie, to 0. Później na tej samej zasadzie dzieli przez 3 i jeśli suma obu pomocniczych zmiennych da 2, to jest to liczba pierwsza else - nie jest.

#programowanie #cpp #uczesie
  • 28
@bart606: Twój sposób ma sens jak najbardziej, tylko trzeba troche uogólnić to co mowisz. Bo co jeśli np odpalisz swoj program dla jakiegoś większego k, którego nie dzieli ani 2 ani 3, ale dzieli jakaś inna liczba pierwsza?
@nvll: Po swojemu nie mogłem, a Twój działa. Dzięki.

@marooned: Po co przez 4, skoro wystarczy przez 2?

@beret20022: Jakiś przykład tego k?

Narazie mam tak jak na obrazku. Chyba wystarczy, że uzupełnię o ilość powtórzeń podawaną przez użytkownika i będzie ok.

Tak w ogóle, to treść zadania (mamy nie robić na tablicach):

"Sprawdź, które spośród danych liczb są liczbami pierwszymi

Input

n - liczba testów n<100000, w kolejnych
Pobierz bart606 - @nvll: Po swojemu nie mogłem, a Twój działa. Dzięki.



@marooned: Po co pr...
źródło: comment_C3CkfFRirYYWm92vgyofK9eTPjSFzfpG.jpg
@bart606: No dobra, ale teraz sprawdzasz tylko podzielność przez 2 i 3. Żeby przetestować inne dzielniki będziesz musiał zrobić pętlę i najlepiej zapamiętać wielokrotności liczb pierwszych które już sprawdziłeś. Czyli 4 np. I tutaj pojawia się Sito Eratostenesa . Chyba nie chcesz tworzyć tylu ifów aby starczyło do n=10000.? Albo lecieć po wszystkich potencjalnych dzielnikach < sqrt(n).