欧拉工程第33题:Digit cancelling fractions
2015-05-20 21:29
330 查看
题目链接:https://projecteuler.net/thread=33
对两位数字,求满足一定条件的数的乘积
1 ab/bc=a/c
2 ab/cb=a/c
3 ba/bc=a/c
4 ba/cb=a/c
给的例子是满足1的,而且还只有四个数,求这四个分数的乘积,最简后的分母是什么?
给的例子满足2的,不符合条件
感觉上,应该没有满足3的两位数,
4 应该满足条件的
a范围 1,9
b范围1,9
c范围2,9
还有就是三个数不能相等。
注意需要约分的。
java代码:
结果只有下面四个,只是满足1的数:
Python代码:
对两位数字,求满足一定条件的数的乘积
1 ab/bc=a/c
2 ab/cb=a/c
3 ba/bc=a/c
4 ba/cb=a/c
给的例子是满足1的,而且还只有四个数,求这四个分数的乘积,最简后的分母是什么?
给的例子满足2的,不符合条件
感觉上,应该没有满足3的两位数,
4 应该满足条件的
a范围 1,9
b范围1,9
c范围2,9
还有就是三个数不能相等。
注意需要约分的。
java代码:
package projecteuler31to40; import java.util.Date; class level33{ void solve(){ int A=1; int B=1; int Z; int M; for(int a=1;a<=9;a++){ for(int b=1;b<=9;b++){ for(int c=2;c<=9;c++){ Z=a*10+b; M=b*10+c; if(Z*c==M*a && a!=b && a<c){ A=A*a; B=B*c; System.out.println(Z+"/"+M+" = "+a+"/"+c); } Z=b*10+a; M=c*10+b; if(Z*c==M*a && a!=b && a<c){ A=A*a; B=B*c; System.out.println(Z+"/"+M+" = "+a+"/"+c); } } } } System.out.println(A+" "+B); int res=B/gcd(A,B); System.out.println(res); } int gcd(int a,int b){ if(a<b){ int temp=a;a=b;b=temp; } int r; while(b!=0){ r=a%b; a=b; b=r; } return a; } } public class Problem33 { public static void main(String[] args){ Date beginTime=new Date(); new level33().solve(); Date endTime=new Date(); Long Time=endTime.getTime()-beginTime.getTime(); System.out.println("Time="+Time/1000+"秒"+Time%1000+"毫秒"); } }
结果只有下面四个,只是满足1的数:
16/64 = 1/4 19/95 = 1/5 26/65 = 2/5 49/98 = 4/8
Python代码:
def gcd(a,b): if a<b: temp=a a=b b=temp r=0; while b!=0: r=a%b a=b b=r return a def solve(): res1=1 res2=1 for a in range(1,10): for b in range(1,10): for c in range(2,10): z=a*10+b m=b*10+c if z*c==m*a and a!=b and a<c: res1=res1*a res2=res2*c print z,m,a,c print res2/gcd(res1,res2)
相关文章推荐
- 欧拉工程第73题:Counting fractions in a range
- 欧拉工程第51题:Prime digit replacements
- 欧拉工程第74题:Digit factorial chains
- Problem 33 Digit cancelling fractions (暴力set+pair)
- 欧拉工程第63题:Powerful digit counts
- 欧拉工程第25题:1000-digit Fibonacci number
- 欧拉工程第34题:Digit factorials
- Project Euler:Problem 33 Digit cancelling fractions
- project euler 33 Digit cancelling fractions
- 欧拉工程第30题:Digit fifth powers
- Project Euler:Problem 33 Digit cancelling fractions
- PE 033 Digit cancelling fractions
- Digit cancelling fractions
- 欧拉工程第56题:Powerful digit sum
- 欧拉工程第72题:Counting fractions
- 欧拉工程第22题:Names scores
- 欧拉工程第32题:Pandigital product sum
- 欧拉工程第11题 在20×20的网格中同一直线上四个数的最大乘积是多少
- 欧拉工程第21题 计算10000以下所有相亲数之和
- 欧拉工程第28题 1001×1001的螺旋中两条对角线之和是多少