Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -0,0 +1,79 @@
|
|||
function getSmarandachePrime(n) {
|
||||
if (n < 10) {
|
||||
switch (n) {
|
||||
case 1: return 2;
|
||||
case 2: return 3;
|
||||
case 3: return 5;
|
||||
case 4: return 7;
|
||||
}
|
||||
}
|
||||
let s = getNextSmarandache(7);
|
||||
let result = 0;
|
||||
for (let count = 1; count <= n - 4; s = getNextSmarandache(s)) {
|
||||
if (isPrime(s)) {
|
||||
count++;
|
||||
result = s;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function isPrime(test) {
|
||||
if (test % 2 === 0) return false;
|
||||
for (let i = 3; i <= Math.sqrt(test); i += 2) {
|
||||
if (test % i === 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function getNextSmarandache(n) {
|
||||
// If 3, next is 7
|
||||
if (n % 10 === 3) {
|
||||
return n + 4;
|
||||
}
|
||||
let retVal = n - 4;
|
||||
|
||||
// Last digit 7. k = largest position from right where we have a 7.
|
||||
let k = 0;
|
||||
while (n % 10 === 7) {
|
||||
k++;
|
||||
n = Math.floor(n / 10);
|
||||
}
|
||||
|
||||
// Determine first digit from right where digit != 7.
|
||||
const digit = n % 10;
|
||||
|
||||
// Digit is 2, 3, or 5. 3-2 = 1, 5-3 = 2, 7-5 = 2, so digit = 2, coefficient = 1, otherwise 2.
|
||||
const coeff = (digit === 2 ? 1 : 2);
|
||||
|
||||
// Compute next value
|
||||
retVal += coeff * Math.pow(10, k);
|
||||
|
||||
// Subtract values for digit = 7.
|
||||
while (k > 1) {
|
||||
retVal -= 5 * Math.pow(10, k - 1);
|
||||
k--;
|
||||
}
|
||||
|
||||
// Even works for 777..777 --> 2222...223
|
||||
return retVal;
|
||||
}
|
||||
|
||||
// Main execution
|
||||
let s = getNextSmarandache(7);
|
||||
console.log("First 25 Smarandache prime-digital sequence numbers:");
|
||||
process.stdout.write("2 3 5 7 ");
|
||||
for (let count = 1; count <= 21; s = getNextSmarandache(s)) {
|
||||
if (isPrime(s)) {
|
||||
process.stdout.write(`${s} `);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
console.log("\n");
|
||||
|
||||
for (let i = 2; i <= 5; i++) {
|
||||
const n = Math.pow(10, i);
|
||||
console.log(`${n.toLocaleString()}th Smarandache prime-digital sequence number = ${getSmarandachePrime(n)}`);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue