Java歐拉函數的計算代碼詳解

歐拉函數

在數論,對正整數n,歐拉函數是小於或等於n的正整數中與n互質的數的數目(因此φ(1)=1)。此函數以其首名研究者歐拉命名(Euler’s totient function),它又稱為Euler’s totient function、φ函數、歐拉商數等。 例如φ(8)=4,因為1,3,5,7均和8互質。 從歐拉函數引伸出來在環論方面的事實和拉格朗日定理構成瞭歐拉定理的證明。 歐拉函數-百度百科.

前言

在數論,對正整數n,歐拉函數是小於n的正整數中與n互質的數的數目(因此φ(1)=1)。此函數以其首名研究者歐拉命名(Euler’s totient function),它又稱為Euler’s totient function、φ函數、歐拉商數等。 例如φ(8)=4,因為1,3,5,7均和8互質。 從歐拉函數引伸出來在環論方面的事實和拉格朗日定理構成瞭歐拉定理的證明。

話不多說,直接上代碼:

package com.qlu.java1;

import java.util.Scanner;

/**
 * 1.歐拉函數求解
 *
 * @author Dxkstart
 * @create 2021-05-28 13:32
 */
public class EulerTest {
    public static void main(String[] args) {
        Euler e = new Euler();
        e.euler();
    }
}

class Euler {
    int num;//最大公因數
    int eul;//歐拉函數值

    //求gcd
    public int gcd(int m, int b) {

        for (int i = (m - 1); i > 0; i--) {
            if (m % i == 0 && b % i == 0) {
                num = i;
                break;
            }
        }
        return num;
    }

    //求歐拉函數
    public void euler() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入要求的歐拉函數:");
        int m = scanner.nextInt();

        for (int j = 1; j < m; j++) {
            if (gcd(m, j) == 1) {
                eul++;
            }
        }

        System.out.println("歐拉函數值為:" + eul);
    }
}

以上就是Java歐拉函數的計算代碼詳解的詳細內容,更多關於Java實現歐拉函數的資料請關註WalkonNet其它相關文章!

推薦閱讀: