JavaScript est un langage de programmation de scripts principalement utilisé pour les pages web interactives. Il est possible de le programmer directement depuis une page web.
Le programme inclut une bibliothèque de calcul en précision arbitraire BigInt. Exemple :
x = new BigInt("1234567890123456789012345678901234567890"); // déclaration
y = new BigInt("0x123456789abcdef0123456789abcdef"); // déclaration
z = x.clone();
z = bigint_uminus(x);
z = bigint_plus(x, y); // addition
z = bigint_minus(x, y); // soustraction
z = bigint_mul(x, y); // multiplication
z = bigint_div(x, y); // division
z = bigint_mod(x, y); // modulo
cmp = bigint_cmp(x, y); // comparaison renvoie -1,0,1
num = bigint_number(x); // conversion en nombre (entier ou flottant)
function est_premier1(n) {
if (n == 2 || n == 3) return 1;
if (n%2 == 0) return 0;
if (n%3 == 0) return 0;
var limite = Math.sqrt(n);
var pas = 2;
for(var i=5; i<=limite; i+=pas, pas=6-pas) {
if (n%i == 0) return 0;
}
return 1;
}
function pgcd(a,b) {
if (b==0) return a;
else return pgcd(b,a%b);
}
function ppcm(a,b) {
return (a*b)/pgcd(a,b);
}
function base_convert(number, frombase, tobase) {
return parseInt(number+'', frombase+0).toString(tobase+0);
}
function factorial(n) {
if (n < 2) return 1;
else return n * factorial(n-1);
}
function bigint_factorial(n) {
if (n < 2) return 1;
else return bigint_mul(n,bigint_factorial(n-1));
}
function decomposition_facteurs_premiers(n) {
var diviseurs = [];
while (n%2==0) {
diviseurs.push(2);
n = n/2;
}
while (n%3==0) {
diviseurs.push(3);
n = n/3;
}
var limite = Math.sqrt(n);
var pas = 2;
for(var i=5; i<=limite; i+=pas, pas=6-pas) {
while (n%i==0) {
diviseurs.push(i);
n = n/i;
limite = Math.sqrt(n);
}
}
if (n > 1) diviseurs.push(n);
return diviseurs;
}
function nombre_diviseurs(n) {
if (n == 1) return 1;
var d = decomposition_facteurs_premiers(n);
var nb = 1;
var prec = d[0];
var p = 1;
for (var i = 1; i < d.length; i++) {
if (prec == d[i]) p++;
else {
nb *= (p+1);
p = 1;
}
prec = d[i];
}
nb *= (p+1);
return nb;
}
function liste_diviseurs(n) {
var limite = Math.sqrt(n);
var diviseurs = new Array();
diviseurs.push(1);
for (var i = 2; i < limite; i++) {
if (n%i==0) {
diviseurs.push(i);
diviseurs.push(n/i);
}
}
if (i == limite) diviseurs.push(i);
diviseurs.sort(function(a,b){return a - b});
return diviseurs;
}
function somme(liste) {
var somme = 0;
for (var i in liste) {
somme += parseInt(liste[i]);
}
return somme;
}
function somme_carre(liste) {
var somme = 0;
for (var i in liste) {
somme += Math.pow(liste[i],2);
}
return somme;
}
function produit(liste) {
var produit = 1;
for (var i in liste) {
produit *= parseInt(liste[i]);
}
return produit;
}
function range(/*[start,] stop[, step]*/) {
if (!arguments.length) {
return [];
}
var min, max, step;
if (arguments.length == 1) {
min = 0;
max = arguments[0]-1;
step = 1;
}
else {
min = arguments[0];
max = arguments[1]-1;
step = arguments[2] || 1;
}
if (step < 0 && min >= max) {
step *= -1;
var tmp = min;
min = max;
max = tmp;
min += ((max-min) % step);
}
var a = [];
for (var i = min; i <= max; i += step) {
a[i] = i;
}
return a;
}
function melanger (liste) {
for (var j, x, i = liste.length; i; j = parseInt(Math.random() * i), x = liste[--i], liste[i] = liste[j], liste[j] = x);
return liste;
}
function somme_chiffres(n) {
n = n.toString();
var longueur = n.length;
var somme = parseInt(n[0]);
for (var i=1; i < longueur; i++) {
somme += parseInt(n[i]);
}
return somme;
}
function est_palindrome(n) {
n = n.toString();
var longueur = n.length;
var moitie = longueur / 2;
for (i=0; i <= moitie; i++) {
if (n[i] != n[longueur-i-1]) return 0;
}
return 1;
}
function fibonacci(n) {
var phi = (1+Math.sqrt(5))/2;
return Math.round(Math.pow(phi,n)/Math.sqrt(5),0);
}
function collatz(n) {
if (n%2 == 0) return n/2;
return 3*n+1;
}
function collatz_temps_vol(n) {
var nb = 1;
while (n != 1) {
n = collatz(n);
nb++;
}
return nb;
}
function est_bissextile(annee) {
if (annee%4 == 0) {
if (annee0 != 0) {
return true;
}
else {
if (annee@0 == 0)
return true;
else
return false;
}
}
return false;
}
© 2012 dcode.fr — Le site indispensable pour résoudre les énigmes, les jeux et les chasses au trésor. dCode