• 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
151 wizyt
pytanie zadane 6 grudnia 2017 w C i C++ przez Newaz Użytkownik (780 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 6 grudnia 2017 przez Knayder Nałogowiec (37,530 p.)
Poczytaj o "Sito Eratostenesa"

3 odpowiedzi

+1 głos
odpowiedź 6 grudnia 2017 przez Knayder Nałogowiec (37,530 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 7 grudnia 2017 przez Bondrusiek Nałogowiec (36,140 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 7 grudnia 2017 przez Knayder Nałogowiec (37,530 p.)
Chcesz za każym razem wywoływać sqrt do sprawdzania? Lepiej już to zapisać do zmiennej.
0 głosów
odpowiedź 6 grudnia 2017 przez seba Dyskutant (8,320 p.)
Musi być zapisane int i=0 w pętli
0 głosów
odpowiedź 6 grudnia 2017 przez Tomek Sochacki VIP (109,590 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ź 115 wizyt
+1 głos
1 odpowiedź 78 wizyt
0 głosów
0 odpowiedzi 269 wizyt
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

54,420 zapytań

98,307 odpowiedzi

202,201 komentarzy

26,727 pasjonatów

Przeglądających: 279
Pasjonatów: 12 Gości: 267

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.

...