• 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
145 wizyt
pytanie zadane 6 grudnia 2017 w C i C++ przez impek Użytkownik (680 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 (36,070 p.)
Poczytaj o "Sito Eratostenesa"

3 odpowiedzi

+1 głos
odpowiedź 6 grudnia 2017 przez Knayder Nałogowiec (36,070 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 (31,830 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 (36,070 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,050 p.)
Musi być zapisane int i=0 w pętli
0 głosów
odpowiedź 6 grudnia 2017 przez Tomek Sochacki Maniak (64,440 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ź 108 wizyt
+1 głos
1 odpowiedź 75 wizyt
0 głosów
0 odpowiedzi 164 wizyt
Oferty pracy dla początkujących programistów na portalu No Fluff Jobs
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

49,734 zapytań

91,689 odpowiedzi

185,189 komentarzy

24,197 pasjonatów

Przeglądających: 278
Pasjonatów: 15 Gości: 263

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.

...