[C++] Liczby pierwsze

kejkun7
Użytkownik
Użytkownik
Posty: 405
Rejestracja: 24 lip 2012, o 23:16
Płeć: Mężczyzna
Lokalizacja: hmm ?
Podziękował: 147 razy
Pomógł: 2 razy

[C++] Liczby pierwsze

Post autor: kejkun7 »

wzorując się na tym kodzie

Kod: Zaznacz cały

  #include <iostream>

using namespace std;

int main()
{
    int a,b,r;

    cin >> a >> b;

    while(b!=0)
    {
        r = a % b;
        a = b;
        b = r;
    }

    cout << a << endl;

    return 0;
} 

napisać kod Sprawdzania, czy dane dwie liczby naturalne są względnie pierwsze.


pomysł mam, więc go opiszę, ale nie mam pojęcia jak napisać kod ;/.

sprawdzić
1 ) czy \(\displaystyle{ a, b}\) są jedną z liczb : \(\displaystyle{ 2, 3, 5, 7.}\)
jeśli nie : ( odpowiednio\(\displaystyle{ a , b}\)idą dalej w kodzie, a jeśli np. \(\displaystyle{ a = 2}\) . to "\(\displaystyle{ a}\)" nie idzie dalej w kodzie. ) :
2) czy \(\displaystyle{ a , b}\) są podzielne przez \(\displaystyle{ 2,3,5,7,9 ?}\)
jeśli nie, są to liczby pierwsze.
wypisz \(\displaystyle{ a}\) i " tak " jeśli jest pierwsza, jeśli nie, wypisz \(\displaystyle{ a}\) i " nie "
i " \(\displaystyle{ b}\)" i " tak " jeśli jest pierwsza, jeśli nie, wypisz\(\displaystyle{ b}\) i " nie "
Ostatnio zmieniony 30 gru 2012, o 21:19 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Awatar użytkownika
lightinside
Użytkownik
Użytkownik
Posty: 796
Rejestracja: 25 lis 2011, o 22:25
Płeć: Kobieta
Lokalizacja: Poznań/Łódź
Podziękował: 111 razy
Pomógł: 29 razy

[C++] Liczby pierwsze

Post autor: lightinside »

A próbowałeś z if lub swith i casem? z czym masz dokładnie problem?
kejkun7
Użytkownik
Użytkownik
Posty: 405
Rejestracja: 24 lip 2012, o 23:16
Płeć: Mężczyzna
Lokalizacja: hmm ?
Podziękował: 147 razy
Pomógł: 2 razy

[C++] Liczby pierwsze

Post autor: kejkun7 »

nie znam " swith i casem"
if znam

czyli np. tak ":

Kod: Zaznacz cały

 if ( a = 2 , or a = 3 , or a =4  ... ) 


 
czy inaczej się sprawdza ?????
i jak sie sprawdza podzielność przez \(\displaystyle{ 2}\)
np. ??
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C++] Liczby pierwsze

Post autor: Ser Cubus »

kejkun7 pisze:nie znam " swith i casem"
if znam

czyli np. tak ":

Kod: Zaznacz cały

 if ( a = 2 , or a = 3 , or a =4  ... ) 


 
czy inaczej się sprawdza ?????
i jak sie sprawdza podzielność przez \(\displaystyle{ 2}\)
np. ??
źle

= to operator przypisania
== to operator porównania


poprawiony Twój kod:

Kod: Zaznacz cały

 if ( a == 2  or a == 3  or a == 4  ... )  
jak sprawdzić podzielność przez jakąś liczbę? operatorem modulo, symbol %

if( x % 2 == 0) cout << "liczba podzielna przez 2"

inaczej mówiąc, czy reszta z dzielenia x przez 2 = 0?
Ostatnio zmieniony 30 gru 2012, o 21:20 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
kejkun7
Użytkownik
Użytkownik
Posty: 405
Rejestracja: 24 lip 2012, o 23:16
Płeć: Mężczyzna
Lokalizacja: hmm ?
Podziękował: 147 razy
Pomógł: 2 razy

[C++] Liczby pierwsze

Post autor: kejkun7 »

czyli coś takiego a propos samego \(\displaystyle{ a}\)


Kod: Zaznacz cały

   if ( a == 2  or a == 3  or a ==5 or a==7 )  

cout << " liczba " , a , "  jest pierwsza"<< endl;
else
if( a % 2 == 0) cout << " liczba " , a , " nie jest pierwsza"
else
if( a % 3 == 0) cout << " liczba " , a , " nie jest pierwsza"
else
if( a % 5 == 0) cout << " liczba " , a , " nie jest pierwsza"
else
if( a % 7 == 0) cout << " liczba " , a , " nie jest pierwsza"
else
if( a % 9 == 0) cout << " liczba " , a , " nie jest pierwsza"
else
cout << " liczba " , a , "  jest pierwsza"

??
jednak pomysł jest zły, ale kod przynajmniej dobrze napisany ?
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C++] Liczby pierwsze

Post autor: Ser Cubus »

co to za przecinki?

zamiast przecinków wstaw: <<
i nie zapomnij po każdej instrukcji postawić średnika: ;

co do pomysłu, owszem pomysł jest zły, bo np 11 też jest liczbą pierwsza

wskazówka:
trzeba by dzielić x przez liczbę inkrementowaną w pętli
m-2
Użytkownik
Użytkownik
Posty: 55
Rejestracja: 4 maja 2011, o 13:37
Płeć: Mężczyzna
Podziękował: 2 razy
Pomógł: 14 razy

[C++] Liczby pierwsze

Post autor: m-2 »

Ludzie, czy wy w ogóle przeczytaliście pierwszy post?

Liczby \(\displaystyle{ a,b}\) są względnie pierwsze wtedy i tylko wtedy, gdy \(\displaystyle{ NWD(a,b)=1}\).

Kod, który wstawiłeś oblicza \(\displaystyle{ NWD}\) dwóch liczb.

Wystarczy sprawdzić, czy \(\displaystyle{ a}\) (czyli \(\displaystyle{ NWD}\) wejściowych liczb po wyjściu z pętli) jest równe 1.
kejkun7
Użytkownik
Użytkownik
Posty: 405
Rejestracja: 24 lip 2012, o 23:16
Płeć: Mężczyzna
Lokalizacja: hmm ?
Podziękował: 147 razy
Pomógł: 2 razy

[C++] Liczby pierwsze

Post autor: kejkun7 »

no ale to zbyt banalne zadanie
jednak zmieniłem na liczenie liczb pierwszych
pozdrawiam ;]
ODPOWIEDZ