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

SPOJ - Liczby Pierwsze if'ami

Object Storage Arubacloud
0 głosów
384 wizyt
pytanie zadane 19 sierpnia 2020 w SPOJ przez Billy Użytkownik (680 p.)

Witam. Napisałem taki program (if'ami zamiast algorytmem, bo nie chciałem psuć sobie zabawy gotowcem tylko spróbować własnymi siłami). W konsoli komentarze do wszystkich liczb wypisuje poprawnie, ale jak daję do sprawdzenia, to po -0,21s wyskakuje "Błędna odpowiedź". Sprawdzałem z 50 liczb i wszystkie komentuje dobrze... Nie wiem o co chodzi :((
P.S. W specyfikacji na SPOJu jest podane, że moje a ma być "z przedziału [1..10000]", więc sprawdziłem tylko czy dla a == 1 i a==0 (tak dla spokoju).

#include <iostream>

using namespace std;

int main()
{
//a to liczba do sprawdzenia, n to ile razy ma się wykonać pętla

    int a,n;
    cin >> n;
    for(int i = 1; i<=n; i++)
    {
        cin >> a;
        if((a==0  || a==1)
           || ((a!=2 && a!=3 && a!=5 && a!=7) && (a%2==0 || a%3==0 || a%5==0 || a%7==0)
               )
           )
            cout << "NIE"<<endl;
        else
            cout << "TAK"<<endl;
    }

    return 0;
}

 

1 odpowiedź

+2 głosów
odpowiedź 19 sierpnia 2020 przez adrian17 Ekspert (344,860 p.)
wybrane 21 września 2020 przez Billy
 
Najlepsza
Definicją liczby pierwszej nie jest "jest niepodzielna przez 2, 3, 5 i 7".

Proponuję poczytać, jaka jest definicja i zastanowić się, jak tą definicję sprawdzić.
komentarz 19 sierpnia 2020 przez Billy Użytkownik (680 p.)
Definicją liczby pierwszej jest: "liczba naturalna większa od 1, która ma dokładnie dwa dzielniki naturalne: jedynkę i siebie samą". Zatem, jeśli liczba nie dzieli się przez żadną z tych liczb wymienionych w warunku, będzie liczbą pierwszą.

Weźmy za przykład 31 - nie dzieli się przez 2, nie dzieli się przez 3, nie dzieli się przez 5 ani nie dzieli się przez 7 - zatem jest liczbą pierwszą, gdyż nie ma żadnych innych dzielników niż 1 i siebie samą. Czytałem tą definicję, i mój pomysł na jej sprawdzenie jest taki. Bo jeśli nie dzieli się przez żadną z tych podstawowych liczb, to przez żadną większą również się nie podzieli.
komentarz 19 sierpnia 2020 przez adrian17 Ekspert (344,860 p.)
Dobra, to teraz zaaplikuj tą samą logikę i powiedz mi czy np 121 lub 899 są liczbami pierwszymi.
komentarz 19 sierpnia 2020 przez Billy Użytkownik (680 p.)
Faktycznie... Dobra, dzięki, popracuję nad tym. Szkoda że SPOJ nie pokazuje, dla jakich przykładów nie działa ://

Podobne pytania

0 głosów
2 odpowiedzi 683 wizyt
pytanie zadane 22 października 2017 w SPOJ przez Łuk Asz Nowicjusz (160 p.)
0 głosów
1 odpowiedź 184 wizyt
pytanie zadane 13 lutego 2021 w SPOJ przez Parex Nowicjusz (200 p.)
0 głosów
0 odpowiedzi 376 wizyt
pytanie zadane 2 stycznia 2020 w SPOJ przez Bezk Nowicjusz (140 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...