180 / 277
Mar 2019

Witam
Nie moge zaliczyc tego zadania
Prosilbym o wskzowki :slight_smile:
Sprawdzalem duzo liczb i wyskakiwalo mi prawidlowo.

#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;

}

  1. Gdy podajesz kod podawaj go najlepiej jako link do Ideone. To jak to podałeś jest bardzo nieczytelne
  2. Twój program nawet nie wczytuje poprawnie danych wejściowych podanych tak jak jest to w treści zadania.
    Przeczytaj dokładnie jak powinno to wyglądać i zrób to na Ideone
  3. Twój kod je niepoprawny. Powiedz jakie wyniki dostaniesz dla 25 35 itp? Będzie, że TAK a to przecież nie są liczby pierwsze

https://ideone.com/YxRsBN30

Witam,
Proszę o pomoc, dlaczego sędzia zwraca błędną odpowiedź.

Program po uruchomieniu i wpisaniu
3
11
1
4
zwraca:
TAK
NIE
NIE

Pozostałe wartości liczb, myślę, że dla każdej kombinacji sprawdzi dobrze.
Gdzie popełniłem błąd. Wiem, że nie jest to szybkie rozwiązanie, ale czy jest błędne?

Z góry dzięki za pomoc,

Dlaczego nie podałeś jaki rodzaj błędu podaje sędzia?

  1. Widać, że na pewno masz problem z rozmiarem tablicy. Przyjmuje ci tylko 9 999 testów (tablica w C++ indeksuje się od 0), bo wpisywać zaczynasz od indeksu 1. W warunkach zadania jest napisane, że testów może być do 100 000.
  2. Po co w ogóle używasz tablicy. Przecież nigdzie tu nie jest potrzebna.
  3. To niedobra praktyka nadużywać zmiennych globalnych, tutaj tez nie są potrzebne.
  4. Myślę, że jak się trochę przyłożysz to napiszesz trochę czytelniejszy kod :slight_smile:

Dzięki!
Po wpisaniu do tablicy [100000] i indeksowaniu od i=0 --> zaakceptowane.
Czas 0.14
MEM 3.1M

Jutro popracuje nad czytelniejszym kodem bez użycia tablic - dopiero mój 3 dzień przygody z programowaniem :slight_smile:

Witam,
Zaczynam z C++ i zastanawia mnie dlaczego nie zalicza mi tego zadania. Z testów wychodzi, że wszysto jak należy.
Może ktoś pomoże.
#include

using namespace std;

int main()
{
int liczba,ile,pom;
cin >> ile;
for ( int a=1; a<=ile ; a++ )
{
cin >> liczba;
for (pom=2; liczba%pom!=0 && liczba > 1; pom++ )
{
}
if (pom == liczba)
cout << “Tak” << endl;
else
cout << “Nie” << endl;
}
return 0;
}

Pozdrawiam

Wielkość wypisywanych liter ma znaczenie. Wyjście musi być dokładnie takie, jak zażyczył sobie autor zadania (poza nadmiarowymi białymi znakami, ale to też nie zawsze).

No właśnie dostaje, że błędna odpowiedź. Tylko niestety nie wiem czemu ?? Testowałem i wszystko jest w jak najlepszym porządku…(literki poprawione)

W czym piszesz swój kod? Twój cudzysłów ma niewłaściwe znaki

Algorytm jest OK - chociaż są dużo lepsze sposoby na zaliczenie tego zadania (np. badanie dzielników n do sqrt(n) albo sito Eratostenesa). Nie wiem jak piszesz cudzysłowy ale coś robisz nie tak. Na klawiaturze musisz klawisz na prawo od średnika wcisnąć razem z Shiftem. Ponadto nie zastosowałeś się do rady eksekk - słowa TAK i NIE muszą być napisane wielkimi literami. Po poprawieniu tych 2 rzeczy dostałem AC Twoim kodem. A i jeszcze porada praktyczna - kody udostępniaj jako link do ideone.com7.

Powodzenia

Podejrzewam, że forum automatycznie zmienia cudzysłowy po bezpośrednim wklejeniu kodu.

Dzięki. Dzisiaj, nie licząc poprawienia na duże litery(co zrobiłem zresztą wcześniej) zaliczyło.

8 days later

Cześć.

Czy ktoś podpowie co złego jest w tym kodzie ?

Nie dostaje akceptacji.

Odpowiedź dla każdej liczby musisz podawać w nowej linii

Dodam jeszcze, że dzielenie nie trzeba wykonywać do n-1 tylko do pierwiastka z n. Na sam wynik to nie wpłynie, ale wpłynie na czas wykonania. Po wpisywaniu wyniku do nowej linii spoje akceptuje kod. Gdy już będzie działało usuń link do kodu.

Cześć,
mam problem i cały czas otrzymuję błąd kompilacji. Piszę w C#, w Visual Studio
Co robię źle?

Nie możesz definiować funkcji wewnątrz innej funkcji. Przesuń ją poza main.