From fec9192bf1494a0180ec31388281667c132b7ee6 Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 21 May 2020 12:16:03 +0200 Subject: problem 4 5 in rust --- rust/004-largest_palindrome_product.rs | 27 +++++++++++++++++++++++++++ rust/005-smallest_multiple.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 rust/004-largest_palindrome_product.rs create mode 100644 rust/005-smallest_multiple.rs (limited to 'rust') 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; + } +} -- cgit