满意答案
I_am_Mirror
2013.11.03
采纳率:58% 等级:12
已帮助:11120人
package com.test.math;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int number = -1;
System.out.print("enter a number..."); //输入任意整数
Scanner reader = new Scanner(System.in);
number = reader.nextInt();
System.out.println(number);
getResult(number);
}
private static void getResult(int number) {
StringBuffer sb = new StringBuffer("");
for (int i = 1; i < number; i++) {
if(commonDivisor(i, number)==1){ //只有最大公约数为1时,是真分数
sb.append("".equals(sb.toString())? i+"/"+number : ","+i+"/"+number);
}
}
System.out.println(sb.toString());
}
private static int commonDivisor(int n, int m) { //得到最大公约数
while (n % m != 0) {
int temp = n % m;
n = m;
m = temp;
}
return m;
}
}
最大公约数的求法是辗转相除法,不明白的话网上也可以查一下,很多,程序已经测试,能运行,望楼主采纳...
10分享举报