欧拉';JavaScript中的ToClient函数

欧拉';JavaScript中的ToClient函数,javascript,Javascript,我正试图用Javascript实现Euler的ToClient函数(phi)。到目前为止,这就是我所拥有的: 函数φ(n){ var结果=n; for(设i=2;i*i 1){ 结果-=结果/n; } 返回结果; } 不幸的是,当它达到4的倍数时,一切都出错了。如何改进此功能?灵感来自 函数φ(n){ //返回两个给定数字的较大公分母 功能gcd(a、b){ 如果(a==0){ 返回b; } 返回gcd(b%a,a); } //初始化 var结果=1; //遍历n以内的所有整数 for(设i=

我正试图用Javascript实现Euler的ToClient函数(phi)。到目前为止,这就是我所拥有的:

函数φ(n){
var结果=n;
for(设i=2;i*i 1){
结果-=结果/n;
}
返回结果;
}
不幸的是,当它达到4的倍数时,一切都出错了。如何改进此功能?

灵感来自

函数φ(n){
//返回两个给定数字的较大公分母
功能gcd(a、b){
如果(a==0){
返回b;
}
返回gcd(b%a,a);
}
//初始化
var结果=1;
//遍历n以内的所有整数
for(设i=2;i
您应该实现result=1,然后在遇到与您输入的数字互质的数字时实现result+。为此,您必须找到gcd函数,这可以通过各种方法来完成,例如ArrayList(如Java)或递归函数