nie bardzo rozumiem, co to znaczy: w kompilatorze wszystko działa - czy to, że program się kompiluje ?
doskonale za to rozumiem: ale nie zalicza mi zadania - i słusznie, bo program daje rozwiązanie innego problemu, niż podano w zadaniu - przeczytaj uważnie jeszcze raz (dwa, trzy, ... aż do zrozumienia) treść zadania
Masz o jeden nawias za dużo. Po co Ci ten warunek:
Zobacz sobie test: 2 100 50
Ta pętla jest dla mnie dzika. Spróbuj ją jeszcze raz zdefiniować. Zrób sobie nieskończoną pętle for, zadeklaruj jednostkę pomocniczą (zorientujesz się o jakiej wartości), inkrementuj ją i nie zapomnij o przerwaniu funkcji jak zostanie spełniony warunek. Wydaje mi się, że to najłatwiejszy sposób. Ale jestem początkujący więc mogę się mylić Powodzenia
Na tak postawione pytanie [+załączony kod] trudno znaleźć rozsądną podpowiedź. Nie wiadomo czy pytający chodzi jeszcze do szkoły podstawowej i czy może przypadskiem nosi okulary [jak ja]. Nie wiadomo, czy pytający, wie, że ma błędnie działający program, i potrzebuje tylko małej pomocy i naprowadzenia, w znalezieniu błędu, czy też nie widzi błędu i uważa, że jego program działa bezbłędnie.
Wygląda, że sugestie, niezadziałały, więc:
“TAK” != “Tak”
“NIE” != “Nie”
Testów może być do 100 000 a nie 10 000 - przeczytaj dokładniej treść zadania.
W funkcji first(…) brakuje na końcu return true - swoją drogą lepszą nazwą funkcji byłoby np: isPrime(…), w języku angielskim, liczby pierwsze, to prime numbers, a nie first numbers
–
Mniej istotne uwagi:
Staraj się używać zmiennych lokalnych a nie globalnych.
Sprawdzanie czy liczba jest pierwszą, można zakończyć o wiele szybciej, poczytaj o tym.
Dobrze jest używać funkcji, ale ich nadmiar już nie jest dobrym pomysłem.
PS
Też tak kiedyś podpowiadałem, ale okazuje się, że w tym wypadku, najpierw wczytanie całego wejścia od razu do odpowiednio dużej tablicy [bufora], a dopiero potem wykonanie “obliczeń” skutkuje kilkakrotnie szybciej działającym programem - 0.15 vs 0.03 sek. Mam na myśli tylko tą jedną zmianę, bez żadnych innych przyśpieszaczy w rodzaaju wyłączania synchro. Możliwe więc, że warto zrewidować swoje poglądy i za każdym razem sprawdzić, zanim się podpowie
Może bez tak wielkiej różnicy, ale zdarzyły mi się tego rodzaju cudeńka na SPOJu. Nie zwracałem na nie jednak uwagi traktując je jako anomalie w działaniu sędziego.
Nie sądzę, aby należało zrewidować swoje poglądy co do przypadku ogólnego. Swoją drogą - dlatego też nie praktykuję teorii śrubowania czasów na SPOJu Tablice mogą wydawać się początkującym bardziej intuicyjne, ale w rzeczywistości ich niepotrzebne użycie jest błędem w sztuce i tyle. (Zwykle przypadkowe) poprawienie czasu o ułamek sekundy nie jest żadnym usprawiedliwieniem dla ich użycia, jeżeli nie było to konieczne.
PS http://pl.spoj.com/problems/AL_23_01/1. Zadanie polecam rozwiązać tablicą i kolejką, a następnie porównać rozwiązania pod względem wydajnościowym, złożonością kodu i możliwością zastosowania w praktyce.
Jak super , że wszyscy tutaj od samego początku byli idealni , super umieli czytać, pisać kod i rozwiązywać zadania , strasznie Wam zazdroszczę. Dziękuję za pomoc . Pamiętajcie , że każdy kiedyś zaczynał.