6 / 7
Aug 2018

Witam,
jestem nowy i od razu przeproszę jeśli coś zrobiłem wbrew regulaminowi.
Do rzeczy, wiem że ten temat przewalał się na forum multum raz,ale już mnie głowa boli od przeglądania różnych rozwiązań użytkowników i dalej nie mogę znaleźć odpowiedzi na moje pytanie dlaczego sędzia nie przyjmuje mojego rozwiązania na zadanie jak w temacie wg mnie jest wszystko OK:
https://ideone.com/DNg3QF5

#include <iostream>

using namespace std;

int a,b,c,d;

void pierwsza(int x)
{
    int licznik=0;

    for(int i=1; i<=x; i++)
    {
        if(x%i==0)
        {
            licznik++;
        }

    }
    if(licznik==2)
    {
        cout<<"TAK"<<endl;
    }
    else
    {
        cout<<"NIE"<<endl;
    }
}

int main()
{
    cin>>a>>b>>c>>d;
    pierwsza(a);
    pierwsza(b);
    pierwsza(c);
    pierwsza(d);


    return 0;
}

Proszę o pomoc.

  • created

    Aug '18
  • last reply

    Aug '18
  • 6

    replies

  • 768

    views

  • 2

    users

  • 2

    links

Twój program nie działa dla testu przykładowego.

Pomyśl nad znaczeniem (poczytaj o znaczeniu?) pierwszej liczby podanej na wejściu.

Przepraszam nie rozumiem, co jest nie tak z parametrem a. Wiele osób zrobiło podobnie mimo to sędzia im zaakceptował, jedyny wyjątek to że ja zrobiłem osobną funkcję. Nawet gdy zrobię to bez użycia funkcji dla jednej wprowadzanej liczby to i tak mi nie przyjmuję. Dziwny ten algorytm sprawdzający, trzeba trafić w klucz jak na maturze z polskiego czy jak? Nie lubię tego, przecież to zabija kreatywność :stuck_out_tongue:

Punkt drugi o parametrze jako liczbie testów to wskazówka gdy już zauważysz, że:

tzn dla testu podanego w treści zadania masz zły wynik

EDIT:
Jeżeli ta podpowiedź nie wystarczy to kolejna:

ile liczb będzie podanych na wejściu?

Dalej nie wiem o co Ci chodzi. W treści jest napisane ze liczba testów ma nie przekraczać 100000(n<100000), czyli liczba wejść ma nie przekraczać tej granicy. Ja zrobiłem to na przykładzie 4 liczb które wpisuje do programu, czyli w moim przypadku 4 wejścia, tak to rozumiem. Sprawdzałem ten program wpisując już setki liczb za każdym razem dobrze pokazuje czy liczba jest pierwsza czy nie, więc jak mogę mieć zły wynik.

Ładnie wkleiłeś kod i się przedstawiłeś więc już nie męczę Liczby pierwsze. Przeczytaj uważnie i powiedz czy umiesz poprawić.

TL;DR pierwsza liczba na wejściu nie jest liczbą, którą należy testować pod względem pierwszości - to liczba testów określająca ile dalej pojawi się liczb, które należy sprawdzić wyświetlając TAK lub NIE.

Aaaahaaa xD, ale człowiek głupi jest, nie potrafiłem nawet dobrze zrozumieć treści zadania, cały czas próbowałeś mi o tym napisać. Pierwszym parametrem który wpisujemy ma być ile chcemy sprawdzić liczb (nie więcej nic 100000) a dopiero potem wpisujemy te liczby. Mój stary program sprawdzał tylko i wyłącznie 4 liczby, ale gdybyśmy chcieli wpisać 10 to musiałbym znów grzebać w kodzie. Dzięki za pomoc oraz cierpliwość :D, temat można zamknąć. Pozdrawiam