算法學習——枚舉之最簡真分數
阿新 • • 發佈:2018-09-15
統計 .com bubuko 真分數 分享 算法思路 整除 == 說明
算法描述
統計分母在指定區間[100,999]的最簡真分數(分子小於分母,且分子分母無公因數)共有多少個,並求這些最簡真分數的和
算法思路
對於指定區間,分母的枚舉範圍為 100~999 即是輸入的a與b,分子最小為1,最大則比分母少一(等於分母的話就無意義)
分子與分母與某個數整除,如果同為0,這說明分子與分母有公因數
算法實現
int a,b;//上限與下限 boolean isCommon = false;//分子與分母無公因數 long m=0;//公因數的個數 int t; double result=0;//和 Scanner scanner = new Scanner(System.in); System.out.println("依次輸入分母上限與下限:"); System.out.println("上限:"); a=scanner.nextInt(); System.out.println("下限:"); b = scanner.nextInt(); scanner.close(); //分母的範圍 a到b //分子的範圍1到i-1(分母-1) for(int i=a;i<=b;i++){ for(int j=1;j<=i-1;j++){ for(isCommon=false,t=2;t<=j;t++){ if(i%t==0 && j%t==0){ isCommon = true; break; } } if(!isCommon){ m++; result = result + (double)j/i; } } } System.out.println(m); System.out.println(result);
結果
算法學習——枚舉之最簡真分數