183 / 277
Mar 2019

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.

Wyrzuciłem boola poza main, do tego poprawiłem pętlę for i błąd, przez który 0 i 1 były uznawane za liczby pierwsze.
Jednak dalej nie przyjmuje, tym razem jest to błędna odpowiedź.

a czy zdarza ci się testować program, choćby czasami ?
bo warto :slight_smile: - choćby dla danych podanych w zadaniu

Tak, zawszę testuję. W visual studio program bez problemu działa i wyświetla poprawnie tak dla liczb pierwszych i nie dla liczb niebędących pierwszymi. Natomiast tutaj za każdym razem występuje problem