summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/projecteuler/033.c59
-rw-r--r--src/projecteuler/033.py34
2 files changed, 93 insertions, 0 deletions
diff --git a/src/projecteuler/033.c b/src/projecteuler/033.c
new file mode 100644
index 0000000..61a7ffd
--- /dev/null
+++ b/src/projecteuler/033.c
@@ -0,0 +1,59 @@
+
+int curious_fraction(int a, int b)
+{
+ int a1 = a/10;
+ int a2 = a%10;
+ int b1 = b/10;
+ int b2 = b%10;
+
+ float result = 1.0*a/b;
+
+ if(a2 == 0)
+ return 0;
+
+ if(a1 == b1)
+ {
+ float result2 = 1.0*a2/b2;
+ if(result == result2)
+ return 1;
+ }
+
+ if(a1 == b2)
+ {
+ float result2 = 1.0*a2/b1;
+ if(result == result2)
+ return 1;
+ }
+
+ if(a2 == b1)
+ {
+ float result2 = 1.0*a1/b2;
+ if(result == result2)
+ return 1;
+ }
+
+ if(a2 == b2)
+ {
+ float result2 = 1.0*a1/b1;
+ if(result == result2)
+ return 1;
+ }
+
+ return 0;
+}
+
+int main()
+{
+ int a, b;
+ float product = 1.0;
+
+ for(a=10; a<100; a++)
+ for(b=a+1; b<100; b++)
+ if(curious_fraction(a, b))
+ product *= 1.0*a/b;
+
+ printf("%d\n", (int)(1/product));
+
+ return 0;
+}
+
diff --git a/src/projecteuler/033.py b/src/projecteuler/033.py
new file mode 100644
index 0000000..9575983
--- /dev/null
+++ b/src/projecteuler/033.py
@@ -0,0 +1,34 @@
+def curious_fraction(a, b):
+ a1 = a/10
+ a2 = a%10
+ b1 = b/10
+ b2 = b%10
+
+ result = 1.0*a/b;
+
+ if a2 == 0 or b2 == 0:
+ return False
+
+ if a1 == b1 and 1.0*a2/b2 == result:
+ return True
+
+ if a1 == b2 and 1.0*a2/b1 == result:
+ return True
+
+ if a2 == b1 and 1.0*a1/b2 == result:
+ return True
+
+ if a2 == b2 and 1.0*a1/b1 == result:
+ return True
+
+ return False
+
+product = 1.0
+
+for a in range(10, 100):
+ for b in range(a+1, 100):
+ if curious_fraction(a, b):
+ product *= 1.0*a/b
+
+print int(1/product)
+