Здравейте, ще бъда ужасно благодарен, ако някой ми посочи къде греша, защото опитах няколко различни подхода, гледах предложенията на други участници в подобни дискусии относно задачата, но нищо не помогна!
Eто и моя код: import java.util.Arrays;import java.util.Scanner;public class BiggestPrime - Pastebin.com
ето и още едно от решенията ми: import java.util.Scanner;public class BiggestPrimeNumber { public stati - Pastebin.com
с тях получавам 50/100 и грешка Invalid Return.
Благодаря предварително на всеки отговорил!
import java.util.Scanner;public class BiggestPrimeNumber { public stati - Pastebin.com - с този код получавам 20/100 и отново същия error message.
(Щях да го постна горе, но “new users can post only 2 links in a topic”)
Това е, чак сега усетих, че не съм го добавил в описанието…
1 Like
Здравейте,
и аз я мислих много тази и накрая стигнах до решение, при което въртя отзад напред числата, за да намеря първото, което е и най-голямото и да спра. При мен проблема идваше от твърде много циклене, когато търся всички и накрая търся най-голямото.
Ето го кода ми, дано да е от полза
import java.util.Scanner;
public class biggestPrimeNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = Integer.parseInt(scanner.nextLine());
int maxNum = 0;
for (int currentNumber = n; currentNumber >= 1; currentNumber--) {
boolean isPrime = true;
for (int divisor = 2; divisor <= Math.sqrt(currentNumber); divisor++) {
if (currentNumber % divisor == 0) {
isPrime = false;
break;
}
}
if (isPrime == true) {
maxNum = currentNumber;
System.out.println(maxNum);
break;
}
}
}
}
1 Like
Здравей,
Сега ще погледна за какво иде реч. Благодаря за помощта!
Грешката в този код е в условието на цикъла for в първия цикъл, по-специално в границата на цикъла. Границата на цикъла трябва да бъде Math.sqrt(n) + 1, а не Math.sqrt(n).
Променя се и условието във втория цикъл for, за да проверяваме дали isPrime[i] вместо !isPrime[i]. Това е така, защото итерираме от края на масива isPrime и търсим най-голямото просто число, така че няма нужда да използваме оператора continue.