Witam
Ostatnio wykonywałem śmieszne zadanie na jakiejś ze stron chyba SPOJ. Zadanie polegało na wczytaniu N liczb i odpowiedzeniu czy ona jest pierwsza czy też nie.
Zadanie rozwiązałem najprostszą metodą ( zakres był niewielki(chyba 10k) to tym bardziej idealnie się ten algorytm nadawał) sitem Eratostenesa na początku generowałem se tą tablice następnie po wczytaniu liczby odwoływałem się do tablicy np tab[liczba] i jeżeli true to TAK jest pierwsza w przeciwnym wypadku niet. czas był chyba koło 0,07 s no więc szukałem ulepszenia bo na 1 miejscu ktoś miał 0,00 s więc po krótkim namyśle wstawiłem cała tablice liczb pierwszych na sztywno do programu np.
bool tab[]={0,0,1,1,0,1,....}; więc generowanie tablicy miałem z głowy więc od razu można było praktycznie podawać odpowiedzi ku mojemu zaskoczeniu czas działania programu wyniósł 0,12 s (wysyłałem paro razy) może mi ktoś wytłumaczyć dlaczego?
Więc wnerwiony zrobiłem wydawało by się jeszcze prościej
Już nie sprawdzałem czy true czy false tylko w tablicy były wbite na sztywno odpowiedzi TAK / NIE
ale wtedy czas mnie już zdenerwował wyniósł 1,2 s i dlaczego? nie zmieniłem metody wczytywania / drukowania znaków (printf,scanf)
Bardzo bym był wdzięczny jak by mi mógł to ktoś wyjaśnić :)
Dzięki!