Loading...
bojo.d avatar bojo.d 1 Точки

Judge memory limit при намиране на prime number

Задачата:

https://judge.softuni.bg/Contests/Practice/Index/156#9

Моето решение:

http://pastebin.com/cW3m3Hmv

 

Разглеждах известно време различни начини за намиране на Prime Number, но така и не успях да реша точно този проблем. Обръщам се към вас, понеже този курс не е баш замислян да се решава на JS и съответно, ако не може да се намери решение на JS, което да се вписва в този Memory Limit, то да се сигнализира да бъде променено това условие.

Идеи за конструктивно решаване на проблема? 

Тагове:
0
JavaScript Fundamentals
Shirdor avatar Shirdor 131 Точки

не слагай math.sqrt() в променлива, а директно в цикъла for(int i = 2; i <= Math.sqrt(n); i++)

 

-1
djc_bg2015 avatar djc_bg2015 923 Точки

@Shirdor: Защо? така функцията Math.sqrt() ще се изпълни само веднъж а ако е в цикъла ще се изпълни N на брой пъти.


@bojo.d: Логиката на задачта ти е грешна. 
вземи за пример 9
sqrt(9) = 3
for i = 2 => 3 % 2 = 1 => печаташ Prime
for i = 3 => 3 % 3 = 0 => печаташ Not Prime
 

Ето ти моето работещо решение:

function isPrime([number]) {
    number = Number(number);
    let isPrime = true;
	let n = Math.sqrt(number);
    for (var num = 2; num < n; num++) {
        if (number % num == 0) {
            isPrime = false;
            break;
        }
    }

    return isPrime && number > 1;
}

console.log(isPrime(['7'])); // true
console.log(isPrime(['8'])); // false
console.log(isPrime(['81'])); // false


 

2
28/02/2017 10:50:42
bojo.d avatar bojo.d 1 Точки

@djc_bg2015 Логиката ми е вярна, твоята дъни :D 
console.log(isPrime(['4'])); > true /дели се на 1/2/4 not prime/

console.log(isPrime(['9'])); > true /дели се на 1/3/9 not prime/
 

Продължаваме битката
Други идеи за оптимизиране?

0
28/02/2017 19:39:35
djc_bg2015 avatar djc_bg2015 923 Точки

Струва ми се че не ме разбра какво искам да ти кажа

ти печаташ по няколко пъти докато прави шпсамите проверки:

Относно кода, изтрил съм знака равно в ифа като едитвах по - рано. сложи го и ще работи.

0
28/02/2017 20:07:32
Shirdor avatar Shirdor 131 Точки

https://github.com/krasi070/ProgrammingFundamentals/blob/6a2141a7a12612ec71cd2b6c181902f92cfc3cc2/02.DataTypesAndMethods/DataTypesAndMethodsExercise/23.PrimeChecker/PrimeChecker.cs

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.