[C++] Czy liczba jest pierwsza

bamsye123
Użytkownik
Użytkownik
Posty: 60
Rejestracja: 11 paź 2014, o 15:36
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 29 razy

[C++] Czy liczba jest pierwsza

Post autor: bamsye123 »

Witam. Mam problem z kodem programu który ma sprawdzać czy wprowadzona liczba jest liczbą pierwszą. Niestety nie wiem czemu nie spełnia on tej funkcji

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int main()
{
    int i,x,a;
    cout<<"Wprowadz liczbe: ";cin>>x;

    if((x==0)||(x==1))
        cout<<"Liczba "<<x<<" nie jest liczba pierwsza"<<endl;
    else

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

        else
            a=1;
    }


if(a==1)
    cout<<"Liczba jest pierwsza"<<endl;

    return 0;
}
Ostatnio zmieniony 11 sty 2015, o 16:12 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C++] Czy liczba jest pierwsza

Post autor: Kacperdev »

zamień kolejność:

Kod: Zaznacz cały

 cout<<"Liczba nie jest pierwsza"<<endl;
break;
           
poza tym nadaj jakąś wartość początkową różną od jedynki dla \(\displaystyle{ a}\)
bamsye123
Użytkownik
Użytkownik
Posty: 60
Rejestracja: 11 paź 2014, o 15:36
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 29 razy

[C++] Czy liczba jest pierwsza

Post autor: bamsye123 »

Dziękuję, już wszystko działa
Awatar użytkownika
csminus
Użytkownik
Użytkownik
Posty: 45
Rejestracja: 29 lis 2014, o 13:06
Płeć: Mężczyzna
Lokalizacja: Lublin/Kraków/Warszawa
Pomógł: 3 razy

[C++] Czy liczba jest pierwsza

Post autor: csminus »

Czy mógł bym się dowiedzieć czemu używasz tak prymitywnej metody? Jest ona bardzo mało efektywna i wymaga bardzo dużej liczby operacji
WarNaX
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 27 lut 2014, o 22:51
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 2 razy

[C++] Czy liczba jest pierwsza

Post autor: WarNaX »

metoda nie jest zła, tylko wymaga ulepszenia, konkretnie mógłbyś zaimplementować sito Eratostenesa, wymaga jedynie drobnych modyfikacji kodu, a sprawdza o sqrt(i) liczb
Awatar użytkownika
Vardamir
Użytkownik
Użytkownik
Posty: 1913
Rejestracja: 3 wrz 2010, o 22:52
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 6 razy
Pomógł: 410 razy

[C++] Czy liczba jest pierwsza

Post autor: Vardamir »

Co ma zaprezentowany tutaj brutal force do sita Eratostenesa? Przecież to są dwie inne metody.
Awatar użytkownika
csminus
Użytkownik
Użytkownik
Posty: 45
Rejestracja: 29 lis 2014, o 13:06
Płeć: Mężczyzna
Lokalizacja: Lublin/Kraków/Warszawa
Pomógł: 3 razy

[C++] Czy liczba jest pierwsza

Post autor: csminus »

Myślę, że chodzi mu o wyznaczenie liczb pierwszych przesz sito \(\displaystyle{ \le \sqrt{n}}\) a później sprawdzenie podzielności \(\displaystyle{ n}\) tylko przez te liczby które wyznaczył, ale to i tak żadna rewelacja
ODPOWIEDZ