Skip to content

Instantly share code, notes, and snippets.

@mustafa0x
Created March 12, 2013 15:22
Show Gist options
  • Save mustafa0x/5143803 to your computer and use it in GitHub Desktop.
Save mustafa0x/5143803 to your computer and use it in GitHub Desktop.
CodeEval solutions. Updated as additional problems are solved.
/**
* FizzBuzz
*/
function codeEvalExecute(line) {
var spec = line.split(" ").map(function(x, i) {
return +x; // Cast to int
}), i = 1, out = "", cur = "";
for (; i <= spec[2]; i++) {
if (i !== 1)
cur = " ";
if (i % spec[0] === 0)
cur += "F";
if (i % spec[1] === 0)
cur += "B";
if (cur === " " || cur === "")
cur += i; // string + int cases the int to be casted to a string
out += cur;
}
return out;
}
function palindrome_check(number) {
if (number < 10)
return true; // One-digit numbers are unimpressive palindromes
var number = number.toString().split(""), i = 0, l = number.length,
palindrome = true;
for ( ; l > 1; ) {
if (number[0] !== number[l - 1]) {
palindrome = false;
break;
}
number = number.slice(1, -1);
l -= 2;
}
return palindrome;
}
/**
* Prime Palindrome
*/
function codeEvalExecute(line) {
function getPrimes(max) {
var sieve = [], i, j, primes = [];
for (i = 2; i <= max; ++i) {
if (!sieve[i]) {
// i has not been marked -- it is prime
primes.push(i);
for (j = i << 1; j <= max; j += i) {
sieve[j] = true;
}
}
}
return primes;
}
function palindrome_check(number) {
if (number < 10)
return true; // One-digit numbers are unimpressive palindromes
var number_ar = number.toString().split(""), i = 0, l = number_ar.length,
palindrome = true;
for ( ; l > 1; ) {
if (number_ar[0] !== number_ar[l - 1]) {
palindrome = false;
break;
}
number_ar = number_ar.slice(1, -1);
l -= 2;
}
return palindrome;
}
var primes = getPrimes(1000), l = primes.length, i = l - 1;
for ( ; i > 0; i--) {
if (palindrome_check(primes[i]))
return primes[i];
}
}
/**
* Sum first 1000 primes
* 3682913
*/
function codeEvalExecute(line) {
function primality_test(n) {
if (isNaN(n) || !isFinite(n) || n % 1 || n < 2)
return false;
if (n % 2 === 0)
return (n == 2);
if (n % 3 === 0)
return (n == 3);
var m=Math.sqrt(n);
for (var i = 5; i <= m; i += 6) {
if (n % i === 0)
return false;
if ( n % (i+2) === 0)
return false;
}
return true;
}
for (var i = 0, j = 0, sum = 0; i < 1000; j++) {
if (primality_test(j)) {
sum += j;
i++;
}
}
return sum;
}
/**
* Lowercase
*/
function codeEvalExecute(line) {
return line.toLowerCase();
}
/**
* Word Reverse
*/
function codeEvalExecute(line) {
return line.split(" ").reverse().join(" ");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment