欧拉工程第73题:Counting fractions in a range
2015-09-27 21:33
507 查看
题目链接:https://projecteuler.net/problem=73
n/d的真分数 ,当d《=12000时 在 1/3 and 1/2 之间的有多少个
n/d的真分数 ,当d《=12000时 在 1/3 and 1/2 之间的有多少个
public class P73{ void run(){ FareySequences(); } void FareySequences(){ int limit = 12000; int a = 1; int b = 3; int c = 4000; int d = 11999; int count=0; while(!(c==1 && d==2)){ count ++; int k = (limit+b)/d; int e = k*c -a; int f = k*d -b; a = c; b = d; c = e; d = f; } System.out.println(count); } // 7295372 // 117ms void BruteForce2(){ int max_n = 12000+1; int result=0; for(int i=5;i<max_n;i++){ for(int j=i/3+1;j<(i-1)/2+1;j++){ if(gcd(i,j)==1){ result++; } } } System.out.println(result); } // 7295372 // 1923ms void BruteForce(){ int max_n = 12000+1; double target2=0.5; double target1=1/3.0; int result=0; for(int i=5;i<max_n;i++){ for(int j=i+1;j<max_n;j++){ if(gcd(i,j)==1){ double tmp = i/(j*1.0); if(tmp>target1 && tmp<target2) result++; } } } System.out.println(result); } // 7295372 // 8877ms int gcd(int a,int b){ int temp; if(a<b){ temp =a; a = b ; b = temp; } while(b!=0){ temp = a%b; a = b; b = temp; } return a; } void calculate(){ int max_n = 1000000; long a = 3; long b = 7; long r = 0; long s = 1; int q = 0; long p = 0; for( q = max_n;q>2;q--){ p = (a*q-1)/b; if(p*s>r*q){ s = q; r = p; } } System.out.println(r+"/"+s); } boolean isPrime(int num){ if(num==2||num==3) return true; if(num<2) return false; for(int i=5;i<Math.sqrt(num)+1;i++) if(num%i==0) return false; return true; } long[] cal_phi(int max_n){ long[] phi = new long[max_n+1]; for(int i=1;i<max_n;i++){ phi[i] += i; for(int j =2*i;j<max_n;j+=i) phi[j]-=phi[i]; } return phi; } public static void main(String[] args){ long t0 = System.currentTimeMillis(); new P73().run(); long t1= System.currentTimeMillis(); System.out.println((t1-t0)+"ms"); } }
相关文章推荐
- install Android studio on Centos7
- Windows Azure® 由世纪互联运营发布MySQL Database on Azure正式商用版
- Windows Azure® 由世纪互联运营发布MySQL Database on Azure正式商用版
- Windows Azure® 由世纪互联运营发布MySQL Database on Azure正式商用版
- Windows Azure® 由世纪互联运营发布MySQL Database on Azure正式商用版
- [leetcode 34] search for a range
- IOS 小例子,输出一个图形的坐标,颜色,形状-2。
- 静态测试及评审、测试用例
- 字符串的初始化及数组、指针
- “钱三篇”后续之物价为什么上涨?
- netbeans表的录入与清除
- Linux 添加快捷方式
- html5 引入百度地图案例
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- PopupWindow使用
- 《编程珠玑》笔记
- LeetCode 9 Palindrome Number (回文数)
- opencpu
- 欧拉工程第72题:Counting fractions
- BestCoder,Nux Walpurgis,最小生成树必要边的数目