• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomocy wypisanie liczby pierwszej

Object Storage Arubacloud
+1 głos
230 wizyt
pytanie zadane 18 lutego 2021 w C i C++ przez Kacper Ślęzak Nowicjusz (130 p.)

 

Mam za zadanie wypisać największą i najmniejsza liczbę pierwsza trzy cyfrową wymyśliłem cos takiego ale nie dziala nie za pomocą tablic 

#include <iostream>
using namespace std;
int main() {
  int a=100, b;
  int min,max;
  while(a<=999) 
    for(b=2; b<=a; b++)
      {
	  if(a%b==0)
	   {
        if (a==b)
        {
		if(a<min)
        {
            min=a;
        }
        if(a>max)
        {
            max=a;
      }
   else break;
   }  
	a++;
}
  cout << endl;
​}
   cout << "Liczba min: " << min << endl;
    cout << "Liczba max: " << max << endl;
  return 0;
}

 

komentarz 18 lutego 2021 przez VBService Ekspert (253,340 p.)
edycja 18 lutego 2021 przez VBService

Linia 25    } cout << endl;  } ?  (wygląda jakby endl był "wyświetlany" w pętli) wink

wpisz tak w lini 25 i zobacz co się dzieje:  cout << a << endl;

Masz "lekko" mówiąc "bałagan" w kodzie od 6 do 26 sprawdź czy masz "klamry" otwierające i zamykające prawidłowo zapisane { ... }
while(...) { ... }, for(...) { ... }, if (...) { ... } )

2 odpowiedzi

+1 głos
odpowiedź 18 lutego 2021 przez tangarr Mędrzec (154,860 p.)
Rozbij problem na dwie części (dwie funkcje).
1. Sprawdź czy podana liczba jest pierwsza.
2. Napisz funkcję iterującą od 100 w górę aż do znalezienia liczby pierwszej a następnie iteruj od 999 w dół aż do znalezienia liczby pierwszej. Tak znalezione liczby będą spełniały założone warunki.
komentarz 18 lutego 2021 przez VBService Ekspert (253,340 p.)

Dokładnie pierwsza liczba z przedziału jest automatycznie minimalną dla danego przedziału i analogicznie ostatnia liczba pierwsza z przedziału jest maksymalną.  laugh. Nie ma potrzeby sprawdzać "środkowe".

0 głosów
odpowiedź 18 lutego 2021 przez VBService Ekspert (253,340 p.)
edycja 18 lutego 2021 przez VBService

Możesz posłużyć się np. : sitem Erastotenesa [ 1 [ 2 ]

bool isPrimeNumber(int n)
{
  if (n<2) return false;
 
  for (int i=2; i*i<=n; i++)
     if (n%i == 0) return false;
  return true;
}

oczywiście musisz tak zmodyfikować podaną funkcję aby "badała" liczby w podanym zakresie wink

Podobne pytania

0 głosów
1 odpowiedź 301 wizyt
0 głosów
1 odpowiedź 24,278 wizyt
0 głosów
2 odpowiedzi 410 wizyt
pytanie zadane 10 maja 2016 w C i C++ przez veryhotshark Obywatel (1,620 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...