Здравейте на всички,
Моля за помощ, че не знам какъв тест да направя за да разбера какво точно съм пропуснал.
Кодът:
Благодаря предварително!
Здравейте на всички,
Моля за помощ, че не знам какъв тест да направя за да разбера какво точно съм пропуснал.
Кодът:
Благодаря предварително!
Здравей,
Решението ти третира само простите числа 2,3 и 5, а не всички. Помисли как да промениш кода си, за да проверяваш за всяко просто число по-малко или равно на n без да ги изписваш едно по-едно. Освен това не е нужно да дублираш int n с int temp, int n ти е достатъчен. Надявам се да съм помогнала, пиши ако не съм.
Поздрави,
Теди
Без да видя условието на задача мога само да гадая за какво става дума, но:
Това което мога да те посъветвам:
Първо, не ги проверявай с if-else. Простите числа могат да бъдат доста повече от текущите 3 с които проверяваш.
За тази цел можеш да използваш for цикъл (https://www.w3schools.com/java/java_for_loop.asp)
Пускаш го от 2(защото това е първото просто число) до N.
for (int i = 2; i <= N; i++)
{
}
След това си проверяваш дали е prime. Можеш да го направиш с втори вложен for или с while цикъл.
Аз лично бих го направил с while:
for (int i = 2; i <= N; i++)
{
while (N % i == 0)
{
}
}
Тук целта е да изпринтиш всяко “i” което е делител на N.
Ако правилно разбирам какво търсиш, това трябва да ти е решението:
for (int i = 2; i <= N; i++)
{
while (N % i == 0)
{
N /= i;
System.out.println(i);
}
}
НО!!! Съветвам те да го дебъгнеш и да асимилираш как работи кода за да има смисъл от цялото упражнение.
Много благодаря за помощта и много подробно и детайлно обяснение.
Сега ми е срам за споделеният код, lol
Решението беше толкова лесно, а пък колко ужасен е моят код.
Благодаря за помощта, разбрах логиката и се оказало че съм решавал подобни задачи и преди, и сега се чудя защо се забих точно на тази.