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

Problem z zadaniem "Liczby Pierwsze" - Polski SPOJ

Fiszki IT
Fiszki IT
0 głosów
101 wizyt
pytanie zadane 8 lipca w C i C++ przez zabson_dev Nowicjusz (240 p.)

Witam, mam problem z zadaniem "Liczby pierwsze" z serwisu Polski SPOJ. Chciałem zrobić aby program sprawdzał także liczby ujemne, więc zrobiłem funkcję zwracającą liczbę bezwzględna, lecz dla każdej ujemnej liczby zwraca iż liczba należy do liczb pierwszych...

#include <iostream>

int number;
bool isPrime;

int wartoscBezwzgledna(int number);

int main()
{
    for (int i = 0; i < 100000; i++){
        std::cin>>number;
        wartoscBezwzgledna(number);
        isPrime = true;
        for (int i = 2; i < number; i++)
        {
            if (number%i == 0)
            {
                isPrime = false;
            }
        }
        if (isPrime == true)
        {
            std::cout<<"NIE"<<std::endl;
        }else
        {
            std::cout<<"TAK"<<std::endl;
        }
    }
    return 0;
}

int wartoscBezwzgledna(int number)
{
    if (number >= 0)
    {
        return number;
    }else
    {
        return -number;
    }
}

Z góry dziękuję za wszelką pomoc :)

komentarz 8 lipca przez Oscar Pasjonat (19,010 p.)
12. linijka nic nie robi.
komentarz 8 lipca przez zabson_dev Nowicjusz (240 p.)
Jesteś pewien?
komentarz 8 lipca przez Oscar Pasjonat (19,010 p.)
Liczy co prawda wartość bezwzględną, ale nic z tym nie robi.
komentarz 8 lipca przez zabson_dev Nowicjusz (240 p.)
Chodzi Tobie o to, że funkcja nie otrzymuje oryginalnej zmiennej?
komentarz 8 lipca przez Oscar Pasjonat (19,010 p.)
Funkcja liczy wszystko dobrze i zwraca poprawny wynik, tylko ten wynik przepada, bo nic się z nim nie dzieje. W odpowiedzi TOM_CPP masz przykład jak to powinno być (pomijając, że on użył funkcji bibliotecznej a ty własnej).

1 odpowiedź

+1 głos
odpowiedź 8 lipca przez TOM_CPP Pasjonat (18,020 p.)
wybrane 8 lipca przez zabson_dev
 
Najlepsza

Nie lepiej dodać:

number = abs(number);

Pomyśl także o przyśpieszeniu swojego algorytmu - nie musisz sprawdzać w pętli całego zakresu od 2 do number.

Podobne pytania

–1 głos
1 odpowiedź 450 wizyt
pytanie zadane 6 stycznia 2018 w C i C++ przez Deneverhad Początkujący (350 p.)
0 głosów
5 odpowiedzi 291 wizyt
pytanie zadane 15 listopada 2016 w C i C++ przez szym3ns Użytkownik (860 p.)
0 głosów
0 odpowiedzi 314 wizyt
pytanie zadane 20 grudnia 2018 w Java przez Pieko Nowicjusz (120 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

84,836 zapytań

133,644 odpowiedzi

296,137 komentarzy

56,080 pasjonatów

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.

...