Sam mam 0.04, ale w zasadzie niezbyt mnie do interesuje (czas), natomiast dam Ci kilka wskazówek jak próbuję przyspieszyć czas:
1.Fast Input/Output C++
2.Wchodzę na ideone.com, wrzucam swoje rozwiązanie i naprawdę duży input żeby sprawdzić co mogę przyspieszyć (w tym wypadku masz 0s więc nic nie zobaczysz)
3.Sprawdzam czy nie liczę przypadkiem czegoś bezsensownie, np. w Twoim wypadku masz:
else if (Number%primes[i]==0 || Number==1)
zdajesz sobie sprawę, że dla dosyć dużej liczby sprawdzasz kilkanaście razy czy czasem (ta sama) liczba nie jest jedynką? Nie powinieneś tego robić w pętli, to można sprawdzić raz.
Zdajesz sobie też sprawę, że dla każdego przypadku tworzysz nową tablicę primes? Każda sprawdzana liczba tworzy taką tablicę (tzn. funkcja is_prime ją tworzy)
4.Wyciskam siódme poty instrukcjami jakie znam lub porównuję różnicę między nimi, np.
for (int i=0;i<25;++i)
można zastąpić tym:
for (int prime:primes)
odchodzi Ci niepotrzebnie liczony licznik pętli (przy okazji: uaktualnij kurs programowania)
PS. Po zrobieniu tego wszystkiego uzyskałem 0.00
Twoim kodem, tak więc możesz ukryć kod, a jakbyś miał problemy to wyślę Ci uaktualniony kod.