searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

js实现欧拉函数计算

2023-07-07 09:59:23
16
0

欧拉函数定义  

在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数(totient function,由西尔维斯特所命名)。 例如φ(8) = 4,因为1,3,5,7均和8互质。
通过js实现欧拉函数计算:

function eulerTotient(n) {
    let result = n; // 初始化结果为 n

    // 对于每个小于 n 且与 n 互质的数 i,逐个减去它们的倍数
    for (let i = 2; i <= Math.sqrt(n); i++) {
        if (n % i === 0) {
            while (n % i === 0) {
                n = Math.floor(n / i);
            }
            result -= Math.floor(result / i);
        }
    }

    // 如果 n 是一个大于 1 的质数,则还需要减去一次
    if (n > 1) {
        result -= Math.floor(result / n);
    }

    return result;
}

// 示例用法:
const n = 10;
const phi = eulerTotient(n);
console.log(`欧拉函数(${n}) = ${phi}`);


以上代码定义了一个名为 eulerTotient 的函数,它接受一个整数 n 作为参数,并返回 n 的欧拉函数值。主要思路是遍历从 2 开始到 sqrt(n) 的所有数,如果某个数是 n 的因数,则减去 result / i 。最后,如果 n 是大于 1 的质数,则还需要减去一次。这样就可以得到欧拉函数的值。

0条评论
作者已关闭评论
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
原创

js实现欧拉函数计算

2023-07-07 09:59:23
16
0

欧拉函数定义  

在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数(totient function,由西尔维斯特所命名)。 例如φ(8) = 4,因为1,3,5,7均和8互质。
通过js实现欧拉函数计算:

function eulerTotient(n) {
    let result = n; // 初始化结果为 n

    // 对于每个小于 n 且与 n 互质的数 i,逐个减去它们的倍数
    for (let i = 2; i <= Math.sqrt(n); i++) {
        if (n % i === 0) {
            while (n % i === 0) {
                n = Math.floor(n / i);
            }
            result -= Math.floor(result / i);
        }
    }

    // 如果 n 是一个大于 1 的质数,则还需要减去一次
    if (n > 1) {
        result -= Math.floor(result / n);
    }

    return result;
}

// 示例用法:
const n = 10;
const phi = eulerTotient(n);
console.log(`欧拉函数(${n}) = ${phi}`);


以上代码定义了一个名为 eulerTotient 的函数,它接受一个整数 n 作为参数,并返回 n 的欧拉函数值。主要思路是遍历从 2 开始到 sqrt(n) 的所有数,如果某个数是 n 的因数,则减去 result / i 。最后,如果 n 是大于 1 的质数,则还需要减去一次。这样就可以得到欧拉函数的值。

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0