Witam mam problem z tym zadaniem. Link do mojego programu https://ideone.com/jSYrLW3
Po odblokowaniu komentarza pętla zagnieżdżona wykonuje się prawidłowo np. dla 121 % 11 zwraca wartość 0;
Natomiast warunek (liczba % j == 0) zostaje całkowicie pomijany i nie mam pomysłu dlaczego.
To dopiero moje początki z programowaniem dlatego proszę o wyrozumiałość
Cześć, jestem tu nowa, więc jeśli ten post wstawiam w złym miejscu, proszę o przekierowanie mnie.
Mam problem - nie widzę żadnego błędu w kodzie, program w CodeBlocksie działa prawidłowo (według mnie) a gdy zgłaszam rozwiązanie otrzymuje komunikat “Błędna odpowiedź”. Może ktoś z Was może mi powiedzieć, co robię źle?
Twój kod6 dla danych z zadania wyświetla:
TAK
NIE
NIE
A wydaje się, że powinien wyświetlać:
TAK
NIE
NIE
Widzisz różnicę?
Napewno, ale tu nie o to chodzi, chodzi o to abyś w miarę możliwości sam znalazł błąd.
Dokładnie tak, chodzi niby o to ale nie zupełnie tak. Dlatego warto wrócić do treści zadania i dokładnie je przestudiować, łącznie z przykładem. Możliwe, że studiowanie, to w tym wypadku za duże słowo, w końcu tam są tylko trzy zdania i jeden przykład, więc tym bardziej warto to - przeczytać i przemyśleć - , zrobić bardzo powoli, dokładnie i ze zrozumieniem.
Gdybyś uważał, że trzy zdania, to za mało, tutaj --> http://discuss.spoj.com/search?q=“liczby%20pierwsze”10 znajdziesz więcej do poczytania i “studiowania”.
Czesc wiecie o co chodzi poniewaz testowalem duzo liczb i dziala a sedzia pokazuje blad.
https://ideone.com/LlS8zV61 (tu jest tylko przyklad aby wstawic link z kodem)
Powie mi ktoś czemu sędzia nie zalicza mi tego programu? Przecież działa on dobrze…
`#include
using namespace std;
bool isPrime (int n)
{
if (n<2)
return false;
for (int i = 2; i*i <= n; i++)
{
if (n%i == 0)
{
return false;
}
return true;
}
}
int main()
{
int n, testy;
cin >> testy;
int tab[testy];
for (int i=0; i < testy; i++)
{
cin >> n;
tab[i] = n;
}
for (int i = 0; i < testy; i++)
{
isPrime(tab[i]) ? cout << "TAK\n" : cout << "NIE\n";
}
return 0;
}
`
#include <iostream>
using namespace std;
bool isPrime (int n)
{
if (n<2)
return false;
for (int i = 2; i*i <= n; i++)
{
if (n%i == 0)
{
return false;
}
return true;
}
}
int main()
{
int n, testy;
cin >> testy;
int tab[testy];
for (int i=0; i < testy; i++)
{
cin >> n;
tab[i] = n;
}
for (int i = 0; i < testy; i++)
{
isPrime(tab[i]) ? cout << "TAK\n" : cout << "NIE\n";
}
return 0;
}
Czemu sędzia nie zalicza tego programu? Przecież działa on poprawnie.
@jokerekv2 powinieneś zwracać wartość true po opuszczeniu pętli. Inaczej wynik funkcji jest niepoprawny.
PS. Nie używaj VLA.