2 / 11
Mar 2019

#include

using namespace std;

int main()
{
int liczba;

cin>>liczba;

if (liczba<2) {cout<<"NIE";}
if (liczba==2) {cout<<"TAK";}
if(liczba%2==1) {cout<<"TAK";}
    else {cout<<"NIE";}

return 0;

}

Witam
Co jest zle w tym kodzie?
Prosze o wskazowki, nie moge zaliczyc tego zadania:)

Pozdrawiam

  • created

    Mar '19
  • last reply

    Mar '19
  • 10

    replies

  • 973

    views

  • 5

    users

  • 1

    like

  • 2

    links

Czy to jest kompletny kod programu? do zadania: https://pl.spoj.com/problems/PRIME_T/4 ??

Jeśli tak to sprawdź na ideone i od razu zobaczysz. Zawsze przeczytaj zadania powoli i ze zrozumieniem.

Twój program podaje rozwiązanie dla jednego testu i kończy pracę, tak? Przeczytaj ponownie zadanie sprawdź jakie mają być dane wejściowe.

edit:

sam kod (sprawdzenie) też jest spaprane - Twój warunek nie sprawdza czy liczba jest pierwsza tylko " czy podzielna przez 2".

Witam ponownie
Dzieki za uwagi)

A w tym kodzie co jest nie tak:

#include

using namespace std;

int n, p=2;

int main()
{
cin >> n;
int tablica[n];

for (int i=0;i<n;i++)
{
cin>>tablica[i];
}

for (int i=0;i<n;i++)
{
    if (tablica[i]<2) cout<<"NIE"<<endl;
    else if (tablica[i]%p != 0) cout<< "TAK"<<endl;
    else cout<<"NIE"<<endl;
}

return 0;

}

Dziele przez 2 i mam reszte z dzielenia i wtedy wiem ze jest liczba pierwsza…

Eeeech… Nie chcę być złośliwy, ale zanim weźmiesz się za rozwiązywanie zadania powinieneś wiedzieć co oznaczają terminy tam użyte. Tutaj dotyczy to liczb pierwszych.

Wpisz hasło “liczby pierwsze” w wyszukiwarce i przeczytaj choćby na wiki co to znaczy. Chyba mylisz z parzystymi.

aha sorki)
liczby pierwsze maja dwa dzielniki: jedynkę i siebie samą
wiec 35 ma : 1 ; 5 ; 35 ) wiec nie jest… zaraz sprubuje to naprawic
dzieki za info

Witam ponownie
Sadze ze rozumiem jak ten przypadek 1 powinnien wygladac ale nie wiem jak to zapisac…
np. gdy podaje na input liczbe: 5 to powinna byc petla ktora przeleci wszystkie liczby od 1 do 5, czyli 1,2,3,4,5 i sprawdzic czy modulo % ==0 i jak mam tylko 2 dzielniki to to jest liczba pierwsza a jak ma wiecej to znaczy ze nie jest… czy to ma sens?

Dzieki

To ma sens. Wygodniej byłoby zaczynać od 2 i badać do n-1. Ale w ten sposób chyba nie zaliczysz tego zadania bo możesz dostać TLE (nie wiem bo nie próbowałem tej metody). Wystarczy że będziesz w pętli przechodził od 2 do sqrt(n)
(i=2; i*i<=n). Znajdź i poczytaj o takim algorytmie. Najlepiej jednak zaliczyć to zadanie sitem Eratostenesa (pozwala to na uzyskanie czasu 0.00)