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

Czy liczba jest liczbą pierwszą

0 głosów
127 wizyt
pytanie zadane 4 dni temu w C i C++ przez impek Użytkownik (570 p.)

Co jest nie tak w tym kodzie, chciałem, żeby było jak najprościej tylko z wykorzystaniem pętli for. 


#include <iostream>

using namespace std;

int i, number;

int main()
{
    cout<<"Podaj liczbe ";
    cin>> number;

    for(i=2; i<number; i++)
    {
        if(number%i==0){
            cout << "Liczba nie jest liczba pierwsza"<<endl;
        }
        else{
            cout<<"Liczba jest liczba pierwsza "<<endl;
        }

    }
    return 0;
}

 

komentarz 4 dni temu przez Knayder Nałogowiec (28,670 p.)
Poczytaj o "Sito Eratostenesa"

3 odpowiedzi

+1 głos
odpowiedź 4 dni temu przez Knayder Nałogowiec (28,670 p.)

Co do twojego kodu to:
 

#include <iostream>
 
using namespace std;
 
int i, number;
 
int main()
{
    cout<<"Podaj liczbe ";
    cin>> number;
    bool isFirst = true;
    for(i=2; i<number; i++)
    {
        if(number%i==0){
            isFirst = false;
            break;
        }
 
    }
    if(isFirst)
        cout << "Pierwsza\n";
    else
        cout << "Zlozona\n";
    return 0;
}

 

komentarz 4 dni temu przez Bondrusiek Pasjonat (22,860 p.)

Można jeszcze dodać bibliotekę cmath

#include <cmath>

i poprawić warunek

 for(i=2; i< sqrt (number)+0.5 ; i++)
    {
        if(!(number % i)){
            isFirst = false;
            break;
        }

    }

 

komentarz 4 dni temu przez Knayder Nałogowiec (28,670 p.)
Chcesz za każym razem wywoływać sqrt do sprawdzania? Lepiej już to zapisać do zmiennej.
0 głosów
odpowiedź 4 dni temu przez seba Dyskutant (7,610 p.)
Musi być zapisane int i=0 w pętli
0 głosów
odpowiedź 4 dni temu przez Tomek Sochacki Nałogowiec (27,310 p.)
Możesz nieco zmienić założenia:

Jeżeli N < 2 to nie jest l. pierwszą

Jeżeli N === 2 to jest l. pierwszą.

Dla liczb > 2 sprawdzasz iteracyjnie N%i===0 ale nie do "końca", ale wystarczy do pierwiastka z N.

Podobne pytania

0 głosów
1 odpowiedź 81 wizyt
0 głosów
1 odpowiedź 171 wizyt
+1 głos
2 odpowiedzi 370 wizyt

42,388 zapytań

81,670 odpowiedzi

162,099 komentarzy

20,320 pasjonatów

Przeglądających: 356
Pasjonatów: 23 Gości: 333

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...