Skip to content

Commit

Permalink
more maths
Browse files Browse the repository at this point in the history
  • Loading branch information
danwdart committed Jul 18, 2016
1 parent bd72e8d commit 6339667
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 1 deletion.
33 changes: 33 additions & 0 deletions js/maths/fibvslucasmod.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
let bases = [],
basesd = [],
baselimit = 2000;

for (let base = 2; base <= baselimit; base++) {
let fibs = [1 % base,1 % base],
lucas = [2 % base,1 % base],
repeatingf = false,
repeatingl = false;
while (!repeatingf) {
fibs.push((fibs[fibs.length - 2] + fibs[fibs.length - 1]) % base);

if (1 == fibs[fibs.length - 2] &&
0 == fibs[fibs.length - 1])
repeatingf = true;
}
while (!repeatingl) {
lucas.push((lucas[lucas.length - 2] + lucas[lucas.length - 1]) % base);

if ((lucas[0] == (lucas[lucas.length - 2] + lucas[lucas.length - 1]) % base) &&
(lucas[1] == (lucas[lucas.length - 2] + 2 *lucas[lucas.length - 1]) % base))
repeatingl = true;
}
console.log('Base', base, 'F', fibs.length, 'L', lucas.length, (fibs.length != lucas.length) ? ' DIFFERENT!':'');
if (fibs.length != lucas.length)
bases.push(base);
//console.log('F', fibs.join(','), 'L:', lucas.join(','));
}

for (let i = 1; i <= baselimit/5; i++) {
if (!bases.includes(i * 5)) basesd.push(i - 11);
}
console.log(basesd.join(','));
37 changes: 37 additions & 0 deletions js/maths/fvlm2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
const baselimit = 2000;

for (let base = 2; base <= baselimit; base++) {

for (let n1 = 1; n1 <= 10; n1++) {
bases = [],
basesd = [],
}

let fibs = [1 % base,1 % base],
lucas = [2 % base,1 % base],
repeatingf = false,
repeatingl = false;
while (!repeatingf) {
fibs.push((fibs[fibs.length - 2] + fibs[fibs.length - 1]) % base);

if (1 == fibs[fibs.length - 2] &&
0 == fibs[fibs.length - 1])
repeatingf = true;
}
while (!repeatingl) {
lucas.push((lucas[lucas.length - 2] + lucas[lucas.length - 1]) % base);

if ((lucas[0] == (lucas[lucas.length - 2] + lucas[lucas.length - 1]) % base) &&
(lucas[1] == (lucas[lucas.length - 2] + 2 *lucas[lucas.length - 1]) % base))
repeatingl = true;
}
console.log('Base', base, 'F', fibs.length, 'L', lucas.length, (fibs.length != lucas.length) ? ' DIFFERENT!':'');
if (fibs.length != lucas.length)
bases.push(base);
//console.log('F', fibs.join(','), 'L:', lucas.join(','));
}

for (let i = 1; i <= baselimit/5; i++) {
if (!bases.includes(i * 5)) basesd.push(i * 5);
}
console.log(basesd.join(','));
3 changes: 2 additions & 1 deletion js/maths/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"description": "maths things",
"main": "index.js",
"dependencies": {
"bignumber.js": "^2.1.0"
"bignumber.js": "^2.1.0",
"node-fetch": "^1.5.3"
},
"devDependencies": {
"babel-cli": "^6.10.1",
Expand Down
15 changes: 15 additions & 0 deletions js/maths/perfectish.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// yes I know it's suboptimal
let factor = (n) => {
let factors = [],
sn = n/2;
for (let i = 1; i <= sn; i++) {
if (0 == n % i) factors.push(i);
}
return factors;
},
sumarray = (arr) => arr.reduce((p,c,i,a)=>p+=c, 0);
for (let i = 1; i <= 20000000; i++) {
let sf = sumarray(factor(i));
//console.log(i, sf, sf > i ? 'SUPER' : '', i == sf ? 'MATCHES' : '')
if (sf == i + 3) console.log(i);
}

0 comments on commit 6339667

Please sign in to comment.