Здравейте, разписах метод с препоръчания Sieve of Eratosthenes за тази задача, и локално всички тестове, които направих, дават правилен резултат, но в Judge имам 5 Invalid Return-а и не мога да разбера защо:
Кодът - https://pastebin.com/YnUBZMta
Благодаря предварително!
Здравей, един hint от мен, judje приема 1 като Prime number.
Благодаря за отговора. Дори и така да е, ограниченията на задачата са:
Constraints
Така че вход 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.
Интересно Пробвай тогава да оптимизираш малко кода - например, нямаш нужда от нов масив primesArr, отговора вече го имаш в boolean масива primes след ред 42. Измисли как да вземеш макс индекса който те интересува.
1 Like
Странно, invalid return не е wrong answer, т.е. все едно печаташ нещо погрешно - например нов ред преди отговора, но не мога да измисля защо би се получило при твоя код.
Защо не пробваш да я решиш по някакъв друг алгоритъм, а не този, който е по условието, за да видиш дали ще мине тестовете?
п.с. това сортиране накрая бави нещата, но едва ли би било причина за invalid return.
Да, като махнах този масив и работя директно върху boolean масивът приема решението - https://pastebin.com/uH57xgXa
Благодаря много!
1 Like