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

Co w tym kodzie jest nie tak ? Polski SPOJ

Object Storage Arubacloud
0 głosów
261 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez wojtekw0703 Użytkownik (960 p.)
edycja 3 maja 2016 przez wojtekw0703

Witam. Proszę o pomoc. Co w tym kodzie jest nie tak ? Wszystko moim zdaniem jest dobrze napisane,ale SPOJ mi pokazuje,że zadanie jest źle.

http://pl.spoj.com/problems/PRIME_T/

 
 

​#include <iostream>

using namespace std;

int main()
{
int n;
cin>>n;

       if ((n%2==0) && n<100000)
       {
          cout<<"Nie"<<endl;
       }
     else if((n/2)>0 && n<100000)
     cout<<"Tak"<<endl;

}
komentarz 3 maja 2016 przez kubaapk Nałogowiec (44,270 p.)
To tak nie zadziała. Możesz mi wytłumaczyć ten kod który napisałeś?
komentarz 3 maja 2016 przez wojtekw0703 Użytkownik (960 p.)

Polecenie zadania jest w linku

komentarz 3 maja 2016 przez kubaapk Nałogowiec (44,270 p.)
Przeczytałem je. Chodzi mi o Twój kod. Co sprawdzają warunki?
komentarz 3 maja 2016 przez wojtekw0703 Użytkownik (960 p.)

Jeśli modulo z dzielenia jest zero oraz n liczba jest mniejsza od 100000 to ma wyświetlić "Tak" a w innym przypadku "Nie". 

komentarz 3 maja 2016 przez kubaapk Nałogowiec (44,270 p.)
No ale przecież to nie zadziała. 4 mod 2 = 0. I co, 4 jest liczbą pierwszą?

Poza tym nie pobierasz liczby testów.
komentarz 3 maja 2016 przez wojtekw0703 Użytkownik (960 p.)
Źle zinterpretowałeś kod.

"Jeśli reszta z dzielenia np.:4 wynosi 0" to wtedy wyświetla się,że liczba nie jest liczbą pierwszą, bo dzieli się przez 1,2,4.

To jak ten kod powinien wyglądać ?
komentarz 3 maja 2016 przez kubaapk Nałogowiec (44,270 p.)
(n/2)>0 && n<100000, to też nie zadziała. Weź sobie 9.

9/2 = 4.5 i to więcej niż 0, a "9" nie jest liczbą pierwszą.

 

Zapoznaj się z algorytmami wyznaczania liczb pierwszych np. sito eratostenesa.

2 odpowiedzi

0 głosów
odpowiedź 3 maja 2016 przez MetGang Nałogowiec (34,360 p.)
https://pl.wikipedia.org/wiki/Liczba_pierwsza

Polecam zapoznać się z definicją liczby pierwszej pierw.
0 głosów
odpowiedź 3 maja 2016 przez Porcupine Nałogowiec (31,560 p.)
Twój kod mówi mniej więcej tyle:

Jeśli liczba n jest parzysta mniejsza od 100000 => wypisz NIE.

Jeśli powyższy warunek nie zaszedł i liczba n / 2 jest większa od 0 (tzn. w praktyce jest jakąkolwiek liczbą nieparzystą większą od 1) => wypisz TAK.

Jeśli powyższe warunki nie zostaną spełnione => nie rób nic.

Weźmy liczbę pod lupę liczbę 9:
Parzysta nie jest, więc pierwszy warunek if () nie zostanie spełniony.
Przechodzimy do else if(). 9 / 2 = 4 co jest większe od zera. Dodatkowo 9 < 100000. => Twój program wypisuje "TAK".

Jednak 9 nie jest liczbą  pierwszą, ponieważ jest podzielny dodatkowo przez 3 (Po za podzielnością przez 1 i samą siebie).

Pozdrawiam,

Podobne pytania

+1 głos
3 odpowiedzi 947 wizyt
pytanie zadane 29 lipca 2016 w C i C++ przez mat1911 Nowicjusz (230 p.)
–1 głos
2 odpowiedzi 234 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez pewien_programista Obywatel (1,070 p.)
0 głosów
2 odpowiedzi 428 wizyt
pytanie zadane 11 marca 2016 w C i C++ przez hanah1411 Nowicjusz (140 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

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

...