180 / 277
Mar 2019

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

nie rozumiesz treści zadania i nie rozumiesz, co piszę
czy naprawdę dla danych testowych z zadania masz taki wynik, jak podano ?
a generalnie, to należy testować w środowisku podobnym do tego, w jakim działa spoj - czyli na ideone.com, a jeżeli już na vs, to z przekierowanym wejściem/wyjściem

@general_iceman przeczytaj jeszcze raz treść zadania:

Input
n - liczba testów n<100000, w kolejnych liniach n liczb z przedziału [1…10000]

Teraz przyjrzyj się przykładowemu wejściu i SPRAWDŹ swoje wyniki

Input:
3
11
1
4
Output:
TAK
NIE
NIE

Poza tym w funkcji Pierwsza(x) powinieneś rozpatrywać przypadek 0 i 1. W funkcji Main będziesz mógłbyś uprościć kod do takiej konstrukcji:

if (Pierwsza(x)) {...}
else {...}

Dziękuję za pomoc, rzeczywiście źle odniosłem się do treści, po poprawieniu zaliczyło. Dodatkowo zrobiłem porządek w kodzie zostawiając w main jedynie pobieranie liczb do sprawdzenia i wyświetlanie, a całość sprawdzania przeniosłem do bool