aboutsummaryrefslogtreecommitdiff
path: root/rust
diff options
context:
space:
mode:
Diffstat (limited to 'rust')
-rw-r--r--rust/004-largest_palindrome_product.rs27
-rw-r--r--rust/005-smallest_multiple.rs34
2 files changed, 61 insertions, 0 deletions
diff --git a/rust/004-largest_palindrome_product.rs b/rust/004-largest_palindrome_product.rs
new file mode 100644
index 0000000..c0b49bd
--- /dev/null
+++ b/rust/004-largest_palindrome_product.rs
@@ -0,0 +1,27 @@
+/*
+* Largest palindrome product
+* Problem 4
+*
+* A palindromic number reads the same both ways.
+* The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
+* Find the largest palindrome made from the product of two 3-digit numbers.
+*/
+
+fn is_palindrome(n: u32) -> bool {
+ let s: String = n.to_string();
+ let r: String = s.chars().rev().collect();
+ s == r
+}
+
+fn main() {
+ let mut largest = 0;
+
+ for x in 100..1000 {
+ for y in 100..1000 {
+ if is_palindrome(x * y) && x * y > largest{
+ largest = x * y
+ }
+ }
+ }
+ println!("{}", largest);
+}
diff --git a/rust/005-smallest_multiple.rs b/rust/005-smallest_multiple.rs
new file mode 100644
index 0000000..ce671f9
--- /dev/null
+++ b/rust/005-smallest_multiple.rs
@@ -0,0 +1,34 @@
+/*
+* Smallest multiple
+* Problem 5
+*
+* 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
+* What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
+*/
+
+fn main() {
+ let mut end = false;
+ let mut n = 2;
+
+ // note to self: iterator are really slow 11s vs 1s without them.
+ loop {
+
+ let mut d = 3;
+ while d <= 20 {
+ if n % d != 0 {
+ end = false;
+ break;
+ } else {
+ end = true;
+ }
+ d += 1;
+ }
+
+ if end {
+ println!("{}", n);
+ break;
+ }
+
+ n += 2;
+ }
+}