Skip to content

Instantly share code, notes, and snippets.

@blacksheep557
Last active August 3, 2021 06:48
Show Gist options
  • Select an option

  • Save blacksheep557/49c7b0abdc16160194fe56ed87bc5a1f to your computer and use it in GitHub Desktop.

Select an option

Save blacksheep557/49c7b0abdc16160194fe56ed87bc5a1f to your computer and use it in GitHub Desktop.
function createSieve(length) {
// @ts-ignore
var sieve = new Array(length).fill(-1);
for (var i = 1; i < length; i++) {
var number = i + 1;
if (sieve[i] === -1) {
for (var j = i + number; j < length; j += number) {
if (sieve[j] === -1)
sieve[j] = number;
}
}
}
// let i: number, j: number, tempArray: number[], chunk: number = 10;
// for (i = 0, j = length; i < j; i += chunk) {
// tempArray = sieve.slice(i, i + chunk);
// console.log(tempArray)
// }
return sieve;
}
var sieve = createSieve(100000);
// console.log(createSieve(50));
function primeFactorise(num) {
// const sieve: number[] = createSieve(num);
var factorsMap = {};
while (sieve[num - 1] !== -1) {
var factor = sieve[num - 1];
num /= factor;
(factorsMap[factor]) ? factorsMap[factor] += 1 : factorsMap[factor] = 1;
}
(factorsMap[num]) ? factorsMap[num] += 1 : factorsMap[num] = 1;
console.log(factorsMap);
}
primeFactorise(50);
primeFactorise(61);
primeFactorise(3);
primeFactorise(86240);
// console.log(50)
function addTimes(time1, time2) {
const secs = (time1[2] + time2[2]) % 60
const mins = (time1[1] + time2[1] + Math.floor((time1[2] + time2[2]) / 60)) % 60
const hours = (time1[0] + time2[0] + Math.floor((time1[1] + time2[1] + ((time1[2] + time2[2]) % 60))/60) ) % 24
console.log(secs, mins, hours)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment