Zrobiłem jeszcze jedną poprawkę, w zadaniu nie jest jasno napisane co ma się dziać w przypadku przekroczenia zakresu, ale już to dodałem, żeby program się nie zamykał. Nie rozumiem natomiast dlaczego napisałeś, że
`
zresztą, obecnie za liczbę pierwszą twój program uznaje wyłączne 2
`
Te ify działają na trzy sposoby: wydłużają kod, spowalniają program, zwiększają szansę na WA (wystarczy że wyświetlisz taki napis albo tak jak poprzednio - nic nie wyświetlisz zamiast normalnie wykonać program i zwrócić odpowiedź TAK albo NIE).
Matematycznie (wybacz, ale nie chce mi się texem): dla każdej liczby naturalnej n różnej od dwa Twój program uznaje, że nie jest ona pierwsza. Chociażby w Twoich testach:
Faktycznie nawet nie zauważyłem, że zmieniłem w pętli 2 na 1 i każda liczba była złożona (oprócz 2) bo dzieliła się przez jeden, w pierwszej wersji jak wstawiłem to było dobrze, nie wiem po oco to tykałem. Faktycznie niepotrzebie skupiłem się na tych zakresach, ale zrozumiałem, że są one wymagane gdyż było to wyszczególnione w tdanych wejściowych… Powywalałem to i działa, sędzia przyjął. Dzięki bardzo za pomoc… Czy skasować mój kod powyżej?
Zakresy sa wazne. Dzieki nim wiesz jakich mniej wiecej danych sie spodziewac a zatem jakich zmiennych uzyc. Mozesz tez ocenic jaki algorytm bedzie Ci potrzebny. Ale nie sa one po to by je sprawdzac w kodzie.
nie zakładamy nowego wątku, gdy już istnieje wątek poświęcony temu zadania - to zadanie ma wiele wątków, dzięki niefrasobliwości takich jak ty
jeżeli jest wątek, czytamy - z dużym prawdopodobieństwem problem został dawno temu omówiony
wskazane jest przekazywanie kodu poprze ideone.com2 - tam też można przetestować rozwiązanie
oczywiście przed napisaniem na forum warto program przetestować przynajmniej dla danych podanych w zadaniu - twój program daje dla tych danych niepoprawny wynik
Wkleiłeś kod w taki sposób że trudno go analizować, oczywiście post jest w złym miejscu i niezgodnie z regulaminem, ale wg mnie nieprawidłowo definiujesz tablicę dynamiczną.
Albo źle przekopiowałeś albo na samym początku nie masz “#include” - nie dodałeś biblioteki chociażby w celu użycia cin/cout. Używaj ideone. Na pierwszy rzut oka widać, że twoja pętla jest źle wykonana. Sprawdź dodatkowo co się stanie jak wprowadzisz 0 albo 1 jako liczbę do sprawdzenia.
Możesz przyspieszyć program (jeśli używasz cin i cout, a nie scanf i printf) dodając na początku funkcji main() dwie linijki kodu, a mianowicie: cin.tie(NULL);ios_base::sync_with_stdio(0);
Mi się udało w ten sposób zejść z 0.16s do 0.01
Jestem tu nowy i niestety napotkałem problem przy pierwszym zadaniu. Niestety nie wiem czemu program mi nie działa. Jeśli ktoś mógł by mi podpowiedzieć co robię nie tak bym był wdzięczny
Z treści przecież wynika że jeśli liczba jest pierwsza to wyjście jest Tak a jeśli nie jest pierwsza to wyjście Nie. Można jaśniej a później pośmieje się z wami.
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?
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.