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

Liczby pierwsze

Object Storage Arubacloud
0 głosów
601 wizyt
pytanie zadane 25 marca 2020 w C i C++ przez Hubert731 Obywatel (1,650 p.)

Problem z rozwiązaniem zadania. Program ma stwierdzić czy podana liczba jest liczba pierwsza. Wydaje mi sie, że zmienna bool, jest tutaj niezbędna, choć nie wiem czy na pewno ją rozumiem.

#include <iostream>

using namespace std;

int liczba;

bool czy_pierwsza(int liczba)
{
    if(liczba<2)
    {
        return false;
    }

    for(int i=2; i=liczba-1; i++ )
    {

        if(liczba%i==0)
        {
            return false;
        }
        return true;
    }

}

int main()
{
    cout << "Podaj calkowita liczbe dodatnia" << endl;
    cin>>liczba;
    if(czy_pierwsza(liczba)==1)
    {
        cout<<"liczba "<<liczba<<" jest liczba pierwsza"<<endl;

    }
    else
    {
        cout<<"liczba "<<liczba<<" nie jest liczba pierwsza"<<endl;
    }

    return 0;
}

if(czy_pierwsza(liczba)==1)   

W tej linii chodzi o to, co ma się stać, kiedy zmienna bool, da wartość prawda? 

2 odpowiedzi

0 głosów
odpowiedź 25 marca 2020 przez wiktoz Mądrala (7,040 p.)
true = 1

false = 0

if(czy_pierwsza(liczba)==1)  <-- dokładnie w tej linii sprawdzasz czy funkcja czy_pierwsza(liczba) zwraca 1, czyli prawdę. Nie musisz dopisywać tego warunku "==1", bo if domyślnie sprawdza czy coś jest prawdą, tj możesz zostawić: if(czy_pierwsza(liczba))
0 głosów
odpowiedź 25 marca 2020 przez Whistleroosh Maniak (56,980 p.)

Masz jeszcze dwa błędy w funkcji czy_pierwsza. Poprawiona wersja wygląda tak:

bool czy_pierwsza(int liczba)
{
    if(liczba<2)
        return false;
 
    for(int i=2; i<=liczba-1; i++ )
    {
        if(liczba%i==0)
            return false;
    }
    
    return true;
}
komentarz 26 marca 2020 przez tkz Nałogowiec (42,000 p.)
Masz na myśli bez if'a?
komentarz 26 marca 2020 przez Hubert731 Obywatel (1,650 p.)
Bez if'a i petli for
komentarz 26 marca 2020 przez Whistleroosh Maniak (56,980 p.)
Nie bardzo da się sprawdzić czy dana liczba jest pierwsza bez pętli i ifów
komentarz 26 marca 2020 przez tkz Nałogowiec (42,000 p.)
Bez pętli tak, bez if'ów nie.
komentarz 26 marca 2020 przez Whistleroosh Maniak (56,980 p.)
No tak, ale nie widzę powodu dla którego opłacałoby się tak namęczyć skoro jedną pętla można to szybko załatwić i ułatwić sobie życie

Podobne pytania

0 głosów
0 odpowiedzi 197 wizyt
pytanie zadane 1 sierpnia 2023 w C i C++ przez Jakub005 Początkujący (310 p.)
0 głosów
1 odpowiedź 468 wizyt
pytanie zadane 22 maja 2023 w C i C++ przez KarmazynowyKaraś Nowicjusz (240 p.)
0 głosów
1 odpowiedź 354 wizyt
pytanie zadane 14 września 2022 w C i C++ przez fsfxvcxv Obywatel (1,160 p.)

92,555 zapytań

141,403 odpowiedzi

319,553 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...