test2


function gcd(gcd1, gcd2) {
// 剰余
var gcdsub;

if(gcd1 < gcd2) { // gcd1 >= gcd2にする
gcdsub = gcd1; //一時退避
gcd1 = gcd2;
gcd2 = gcdsub;
}

while *1
n = n/g
d = d/g
}
numerator[i] = n
denominator[i] = d

}

 

n = 0
d = 1
i = 1
for(;i <= m;i++){

subn = n*denominator[i]-Math.pow(-1,i)*d*numerator[i]
subd = d*denominator[i]
if(subn == 0){

n = 0
d = 1

} else {
g = gcd(Math.abs(subn),Math.abs(subd))
n = subn/g
d = subd/g
}

}

numerator.shift()
denominator.shift()

numerator.unshift(n)
denominator.unshift(d)


numerator.unshift(0)
denominator.unshift(1)

 

window.alert(numerator + "\n" + denominator)
t = window.prompt("繰り返しますか? 1でstop", "")

}

n = ""
d = ""
i = ""
g = ""
m = ""
t = ""
numerator = ""
denominator = ""

}
</script>
</head>
<body>
<p><input type="button" value="一次方程式" onClick="itizi()"></p>
<p><input type="button" value="二次方程式" onClick="nizi()"></p>
<p><input type="button" value="和と積" onClick="watoseki()"></p>
<p><input type="button" value="自然数の和" onClick="itizyou()"></p>
<p><input type="button" value="自然数の2乗の和" onClick="nizyou()"></p>
<p><input type="button" value="自然数の3乗の和" onClick="sanzyou()"></p>
<p><input type="button" value="比例式" onClick="hireisiki()"></p>
<p><input type="button" value="二元連立方程式(クラメルの公式)" onClick="nigenrenritu()"></p>
<p><input type="button" value="最大公約数" onClick="kouyakusuu()"></p>
<p><input type="button" value="最小公倍数" onClick="koubaisuu()"></p>
<p><input type="button" value="三平方の定理" onClick="sanheihou()"></p>
<p><input type="button" value="三角形の面積(へロンの公式)" onClick="heron()"></p>
<p><input type="button" value="複素数の加法" onClick="hukusosuunowa()"></p>
<p><input type="button" value="複素数の減法" onClick="hukusosuunosa()"></p>
<p><input type="button" value="複素数の乗法" onClick="hukusosuunoseki()"></p>
<p><input type="button" value="複素数の除法" onClick="hukusosuunosyou()"></p>
<p><input type="button" value="複素数の冪乗" onClick="hukusosuunosisuu()"></p>
<p><input type="button" value="階乗" onClick="kaizyou()"></p>
<p><input type="button" value="約分" onClick="yakubun()"></p>
<p><input type="button" value="数式処理" onClick="suusiki()"></p>
<p><input type="button" value="大小関係" onClick="daisyou()"></p>
<p><input type="button" value="xor演算" onClick="burakkubokkusu()"></p>
<p><input type="button" value="sin(θ)" onClick="sain()"></p>
<p><input type="button" value="cos(θ)" onClick="cosain()"></p>
<p><input type="button" value="tan(θ)" onClick="tanzyento()"></p>
<p><input type="button" value="arcsin(θ)" onClick="aksain()"></p>
<p><input type="button" value="arccos(θ)" onClick="akcosain()"></p>
<p><input type="button" value="arctan(θ)" onClick="aktan()"></p>
<p><input type="button" value="agr(x+yi)" onClick="agr()"></p>
<p><input type="button" value="e^x" onClick="sisuukannsuu()"></p>
<p><input type="button" value="sgi(x)" onClick="sigunaru()"></p>
<p><input type="button" value="e^(iθ)" onClick="oira()"></p>
<p><input type="button" value="1-{(1-x/y)^z}" onClick="kakuritu()"></p>
<p><input type="button" value="乱数" onClick="ransuu()"></p>
<p><input type="button" value="log(x,y)" onClick="rogu()"></p>
<p><input type="button" value="Log(x+yi)" onClick="logu()"></p>
<p><input type="button" value="四角形の面積(ブレートシュナイダーの公式)" onClick="bureitosyunaida()"></p>
<p><input type="button" value="正三角形の面積" onClick="seisankanukei()"></p>
<p><input type="button" value="三角形の面積(二辺の長さと間の角)" onClick="nihensonokaku()"></p>
<p><input type="button" value="1-(1-y)^(1/x)" onClick="ritunogoukei()"></p>
<p><input type="button" value="循環小数" onClick="zyunnkannsyousuu()"></p>
<p><input type="button" value="log(1-x)/log(1-y)" onClick="ritunannkai()"></p>
<p><input type="button" value="代入" onClick="dainyuu()"></p>
<p><input type="button" value="微分" onClick="bibunn()"></p>
<p><input type="button" value="一次方程式 (改)" onClick="itizikai()"></p>
<p><input type="button" value="極限" onClick="kyokugenn()"></p>
<p><input type="button" value="等差型漸化式" onClick="tousazenkasiki()"></p>
<p><input type="button" value="等比型漸化式" onClick="touhizenkasiki()"></p>
<p><input type="button" value="特性方程式" onClick="tokuseizenkasiki()"></p>
<p><input type="button" value="ニュートン法(導関数)" onClick="myuutonhou()"></p>
<p><input type="button" value="ニュートン法(三点近似)" onClick="santennmyuuton()"></p>
<p><input type="button" value="ニュートン法(五点近似)" onClick="gotennmyuuton()"></p>
<p><input type="button" value="積分(区分求積法)" onClick="sekibunn()"></p>
<p><input type="button" value="nPr" onClick="pii()"></p>
<p><input type="button" value="nCr" onClick="cii()"></p>
<p><input type="button" value="Σ(f(x))" onClick="siguma()"></p>
<p><input type="button" value="Π(f(x))" onClick="pai()"></p>
<p><input type="button" value="二次方程式の三点" onClick="nizihoutesikinosanten()"></p>
<p><input type="button" value="三元連立方程式" onClick="sangenrenritu()"></p>
<p><input type="button" value="四元連立方程式" onClick="yongenrenritu()"></p>
<p><input type="button" value="数値処理" onClick="heikinn()"></p>
<p><input type="button" value="二回微分" onClick="nikaibibun()"></p>
<p><input type="button" value="素因数分解" onClick="soinnsuubunnkai()"></p>
<p><input type="button" value="約数関数" onClick="yakusuukannsuu()"></p>
<p><input type="button" value="W(x)(ランベルトのW関数)" onClick="ranberuto()"></p>
<p><input type="button" value="最小二乗法" onClick="saisyouzizyouhou()"></p>
<p><input type="button" value="時間の足し算" onClick="zikantasizan()"></p>
<p><input type="button" value="時間の引き算" onClick="zikanhukizan()"></p>
<p><input type="button" value="時間の掛け算" onClick="zikankakezan()"></p>
<p><input type="button" value="時間の割り算" onClick="zikanwarizan()"></p>
<p><input type="button" value="素数定理" onClick="sosuuteiri()"></p>
<p><input type="button" value="二点間の距離の公式" onClick="nitenkannokyori()"></p>
<p><input type="button" value="直線(or平面)と点の距離の公式" onClick="tyokusentotennokyori()"></p>
<p><input type="button" value="ベクトルの内積,なす角,cos(θ)" onClick="bekutorunonaiseki()"></p>
<p><input type="button" value="三角形の面積(一辺の長さと両端の角)" onClick="sankakukeinokakudo()"></p>
<p><input type="button" value="フィボナッチ数" onClick="fibontti()"></p>
<p><input type="button" value="三角形の3辺からの情報" onClick="sannkakukeinohen()"></p>
<p><input type="button" value="ルジャンドルの定理" onClick="ruzyandoru()"></p>
<p><input type="button" value="p乗根の和" onClick="pzyoukonn()"></p>
<p><input type="button" value="p乗の和" onClick="pzyounowa()"></p>
<p><input type="button" value="nのp乗" onClick="nnopzyou()"></p>
<p><input type="button" value="Faulhaber" onClick="Faulhaber()"></p>
</body>
</html>

*1:gcdsub = gcd1 % gcd2) != 0) {
gcd1 = gcd2;
gcd2 = gcdsub;
}

return gcd2;
}
function Faulhaber(){
numerator = window.prompt("分子の配列を入力してください\nex)1/2*n^2+1/2*n → [0,1,1]と[1,2,2](昇べきの順)", "")
denominator = window.prompt("分母の配列を入力してください", "")
numerator = eval(numerator)
denominator = eval(denominator)
t = 0
for(;t == 0;){

m = numerator.length-1
i = 1
for(;i <= m;i++){
n = numerator[i]*m
d = denominator[i]*(i*1+1)
if(n == 0){
n = 0
d = 1
} else {
g = gcd(Math.abs(n),Math.abs(d