Skip to content

Commit

Permalink
add initial attempt at 111
Browse files Browse the repository at this point in the history
  • Loading branch information
LivInTheLookingGlass committed Aug 30, 2024
1 parent 3e456e2 commit bbc4026
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 0 deletions.
1 change: 1 addition & 0 deletions _data/answers.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ ID type size answer
92 int 32 8581146
97 int 64 8739992577
99 int 16 709
111 uint 64 0
118 uint 16 44680
123 int 16 21035
134 int 64 18613426663617118
Expand Down
2 changes: 2 additions & 0 deletions rust/src/include/problems.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ use crate::p0069::p0069;
use crate::p0076::p0076;
use crate::p0077::p0077;
use crate::p0087::p0087;
use crate::p0111::p0111;
use crate::p0187::p0187;
use crate::p0357::p0357;
use crate::p0836::p0836;
Expand Down Expand Up @@ -50,6 +51,7 @@ seq!(N in 0001..=0020 {
76 => Some(( &76, p0076, false)),
77 => Some(( &77, p0077, false)),
87 => Some(( &87, p0087, false)),
111 => Some((&111, p0111, false)),
187 => Some((&187, p0187, false)),
357 => Some((&357, p0357, true)),
836 => Some((&836, p0836, false)),
Expand Down
1 change: 1 addition & 0 deletions rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ pub mod p0069;
pub mod p0076;
pub mod p0077;
pub mod p0087;
pub mod p0111;
pub mod p0187;
pub mod p0357;
pub mod p0836;
Expand Down
2 changes: 2 additions & 0 deletions rust/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ pub mod p0069;
pub mod p0076;
pub mod p0077;
pub mod p0087;
pub mod p0111;
pub mod p0187;
pub mod p0357;
pub mod p0836;
Expand Down Expand Up @@ -97,6 +98,7 @@ seq!(N in 01..=20 {
#[case::problem_76(76)]
#[case::problem_77(77)]
#[case::problem_87(87)]
#[case::problem_111(111)]
#[case::problem_187(187)]
// #[case::problem_357(357)]
#[case::problem_836(836)]
Expand Down
22 changes: 22 additions & 0 deletions rust/src/p0111.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
Project Euler Problem 111
*/
use std::iter::zip;

use crate::include::primes::primes_until;
use crate::include::utils::Answer;

pub fn p0111() -> Answer {
let ten_9: u64 = 10_u64.pow(9);
let ten_10: u64 = 10_u64.pow(10);
let primes_int: Vec<u64> = primes_until::<u64>(ten_10).filter(|x| *x > ten_9).collect();
let primes_str: Vec<String> = primes_int.iter().map(|p| (*p).to_string()).collect();
let mut answer: u64 = 0;
for digit in 0..=9 {
let primes_counts: Vec<usize> = primes_str.iter().map(|s| (*s).bytes().filter(|b| *b == digit + b'0').count()).collect();
let n: usize = primes_counts.iter().map(|x| *x).max().unwrap();

Check warning

Code scanning / clippy

you are using an explicit closure for copying elements Warning

you are using an explicit closure for copying elements

Check warning

Code scanning / clippy

you are using an explicit closure for copying elements Warning

you are using an explicit closure for copying elements
answer += zip(primes_int.iter(), primes_counts.iter()).filter(|(_i, c)| **c == n).map(|(i, _c)| *i).sum::<u64>();
}
return Answer::Int(answer.into());
}

0 comments on commit bbc4026

Please sign in to comment.