下面是一个程序,当给定n时,对于所有小于或等于n的数字,获取Euler的Totient函数的结果。
import java.util.Scanner; public class EulerTotient { public static int gcd(int a,int b){ int i, hcf = 0; for(i = 1; i <= a || i <= b; i++) { if( a%i == 0 && b%i == 0 ) hcf = i; } return hcf; } public static void main(String args[]){ Scanner sc = new Scanner(System.in); System.out.println("输入n值:"); int n = sc.nextInt(); for (int i = 1; i <= n; i++){ int x = 1; for (int j = 2; j < i; j++){ if (gcd(j, n) == 1){ x++; } } System.out.println(x); } } }
输出结果
Enter the n value 10 1 1 1 2 2 2 2 3 3 4