Biggest Prime Number Invalid Return

Здравейте, разписах метод с препоръчания Sieve of Eratosthenes за тази задача, и локално всички тестове, които направих, дават правилен резултат, но в Judge имам 5 Invalid Return-а и не мога да разбера защо:
image

Кодът - https://pastebin.com/YnUBZMta

Благодаря предварително!

Здравей, един hint от мен, judje приема 1 като Prime number.

Благодаря за отговора. Дори и така да е, ограниченията на задачата са:

Constraints

  • 2 <= N <= 10 000 000

Така че вход 1 или 0 няма как да има, а при вход 2 методът правилно връща 2 понеже:

Output

  • Print the biggest prime number which is <= N

Не мога да разбера защо дава invalid return, тествах го с вход от 0 до 1000 и си връща правилните резултати. Всякакви идеи са добре дошли!

Щом приемаш всякакви идеи - пробвай в мейн метода да парснеш инпута към int със scanner.nextLine() вместо scanner.nextInt()

Пробвах да заменя викането на самия метод от:

System.out.print(BiggestPrimeNumber.sieveOfEratosthenes(scanner.nextInt()));

Към:

System.out.print(BiggestPrimeNumber.sieveOfEratosthenes(Integer.parseInt(scanner.nextLine())));

Но резултатът е идентичен. Тестове 1,2,4,5,7 и 8 минават, другите дават Invalid Return. :thinking:

Интересно :slight_smile: Пробвай тогава да оптимизираш малко кода - например, нямаш нужда от нов масив primesArr, отговора вече го имаш в boolean масива primes след ред 42. Измисли как да вземеш макс индекса който те интересува.

1 Like

Странно, invalid return не е wrong answer, т.е. все едно печаташ нещо погрешно - например нов ред преди отговора, но не мога да измисля защо би се получило при твоя код.
Защо не пробваш да я решиш по някакъв друг алгоритъм, а не този, който е по условието, за да видиш дали ще мине тестовете?
п.с. това сортиране накрая бави нещата, но едва ли би било причина за invalid return.

Да, като махнах този масив и работя директно върху boolean масивът приема решението - https://pastebin.com/uH57xgXa

Благодаря много!

1 Like