Implementacja sita eratostenesa

0

Cześć,
mam takie zdanie do zrobienia i kompletnie nie wiem jak do tego podejść.
jeśli ktoś może pomóc niech napisze wiadomość
Napisać program znajdujący wszystkie liczby pierwsze w zakresie podanym przez użytkownika (np. w zakresie od 21 do 30 są dwie liczby pierwsze: 23 i 29)

3

Liczba pierwsza to taka, która jest podzielna tylko przez siebie, więc najpierw zrób jakąś metodę bool IsPrime(int val), która będzie zwracać true/false w zależności czy liczba jest pierwszą. Potem wczytaj 2 liczby od użytkownika przy użyciu cin, przeleć pętlą po zakresie tych liczb, np. będziesz miał a i b to for (int i = a; i <= b; i++) { }. Tutaj możesz użyć nie wiem jakiejś listy? Albo sobie w stringu sklejaj xD string result = "" i w pętli if (IsPrime(i)) { result += ", " + i; }

A metoda do liczby pierwszej to nie wiem coś takiego chyba zadziała:

bool IsPrime(int a)
{
  if (a == 1)
    return true;
  for (int i = 2; i < a; i++)
  {
    if (a % i == 0)
      return false;
  }

  return true;
}
0

dzięki za pomoc ! udało się :D

3

Czemu dałeś tytuł "Implementacja Sita Erastotenesa" skoro odpowiedź, która CI pomogła, nie ma z nim nic wspólnego?

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