Revert "fix: stop user code after 100ms of execution" (#37965)

This reverts commit 01b37f664f.
This commit is contained in:
Oliver Eyton-Williams
2019-12-21 06:39:32 +01:00
committed by mrugesh
parent c49aee9edc
commit e5abfa15ad
9 changed files with 75 additions and 143 deletions

View File

@ -62,67 +62,44 @@ divisibleTriangleNumber(500);
</div>
</section>
## Solution
<section id='solution'>
```js
function divisibleTriangleNumber(n) {
if (n === 1) return 3;
let counter = 1;
let triangleNumber = counter++;
function getFactors(num) {
let factors = [];
while (noOfFactors(triangleNumber) < n) {
triangleNumber += counter++;
}
return triangleNumber;
}
let possibleFactor = 1;
let sqrt = Math.sqrt(num);
function noOfFactors(num) {
const primeFactors = getPrimeFactors(num);
let prod = 1;
for(let p in primeFactors) {
prod *= (primeFactors[p] + 1)
}
return prod;
}
function getPrimeFactors(num) {
let n = num;
let primes = {};
let p = 2;
let sqrt = Math.sqrt(num);
function checkAndUpdate(inc) {
if (n % p === 0) {
const curr = primes[p];
if (curr) {
primes[p]++
} else {
primes[p] = 1;
while (possibleFactor <= sqrt) {
if (num % possibleFactor == 0) {
factors.push(possibleFactor);
var otherPossibleFactor = num / possibleFactor;
if (otherPossibleFactor > possibleFactor) {
factors.push(otherPossibleFactor);
}
}
n /= p;
} else {
p += inc;
possibleFactor++;
}
return factors;
}
while(p === 2 && p <= n) {
checkAndUpdate(1);
while (getFactors(triangleNumber).length < n) {
triangleNumber += counter++;
}
while (p <= n && p <= sqrt) {
checkAndUpdate(2);
}
if(Object.keys(primes).length === 0) {
primes[num] = 1;
} else if(n !== 1) {
primes[n] = 1;
}
return primes;
console.log(triangleNumber)
return triangleNumber;
}
```

View File

@ -35,8 +35,8 @@ tests:
testString: assert.strictEqual(longestCollatzSequence(46500), 35655);
- text: <code>longestCollatzSequence(54512)</code> should return 52527.
testString: assert.strictEqual(longestCollatzSequence(54512), 52527);
- text: <code>longestCollatzSequence(100000)</code> should return 77031.
testString: assert.strictEqual(longestCollatzSequence(100000), 77031);
- text: <code>longestCollatzSequence(1000000)</code> should return 837799.
testString: assert.strictEqual(longestCollatzSequence(1000000), 837799);
```

View File

@ -61,22 +61,21 @@ nthPrime(10001);
```js
const nthPrime = n => {
let pN = 2;
let step = 0;
while (step < n) {
let isPrime = true;
let rootN = Math.sqrt(pN);
for (let i = 2; i <= rootN; i++) {
if (!(pN % i)) {
const nthPrime = (number)=>{
let pN = 2;
let step = 0;
while (step<number) {
let isPrime = true;
for(let i = 2;i<pN;i++){
if(!(pN%i)){
isPrime = false;
break;
}
}
isPrime ? step++ : '';
}
isPrime ? step++ : '';
pN++;
}
return pN - 1;
}
return pN-1;
}
```