Coin de Gamma
2 years ago
1 changed files with 95 additions and 0 deletions
@ -0,0 +1,95 @@
|
||||
// sorry it's mess i am lazy to clearup
|
||||
|
||||
use std::collections::HashMap; |
||||
use std::collections::HashSet; |
||||
|
||||
const N: u32 = 10_000; |
||||
|
||||
struct Amd { |
||||
pub d: Vec<u32>, |
||||
pub e: HashMap<u32, Vec<u32>>, |
||||
pub a: HashSet<u32> |
||||
} |
||||
|
||||
impl Amd { |
||||
fn new() -> Amd { |
||||
return Amd { |
||||
d: Vec::new(), |
||||
e: HashMap::new(), |
||||
a: HashSet::new() |
||||
}; |
||||
} |
||||
|
||||
fn precalc(&mut self) { |
||||
self.d.push(0); |
||||
//let mut sum_ams = 0u32;
|
||||
for i in 1..=N { |
||||
let d = get_d(i); |
||||
let d_ = get_d(d); |
||||
if d_ == i && i != d && i > d { |
||||
println!("found ({} vs {})", i, d); |
||||
//sum_ams += i;
|
||||
if d != i { |
||||
//sum_ams += d + i;
|
||||
self.a.insert(d); |
||||
self.a.insert(i); |
||||
} |
||||
} |
||||
continue; |
||||
if d > i { |
||||
println!("yo big {} vs {}", i, d); |
||||
} |
||||
self.d.push(d); |
||||
if self.e.get(&d).is_none() { |
||||
let mut v = Vec::new(); |
||||
v.push(i); |
||||
self.e.insert(d, v); |
||||
} else { |
||||
let v = self.e.get_mut(&d).unwrap(); |
||||
v.push(i); |
||||
} |
||||
} |
||||
|
||||
let mut sum_ams = 0u32; |
||||
for i in self.a.iter() { |
||||
sum_ams += i; |
||||
} |
||||
println!("sum_ams: {}", sum_ams); |
||||
} |
||||
|
||||
fn ams(&self) { |
||||
for (k, v) in self.e.iter() { |
||||
if v.len() > 1 { |
||||
for n in v { |
||||
//if self.d[k as usize] = n {
|
||||
// println!("")
|
||||
//}
|
||||
} |
||||
//print!("{} -> ", k);
|
||||
//for n in v {
|
||||
// print!("{} ", n);
|
||||
//}
|
||||
//println!("");
|
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
fn get_d(n: u32) -> u32 { |
||||
let mut res = 0; |
||||
for i in 1..n { |
||||
if n % i == 0 { |
||||
res += i; |
||||
} |
||||
} |
||||
return res; |
||||
} |
||||
|
||||
fn main() { |
||||
let mut amd = Amd::new(); |
||||
amd.precalc(); |
||||
amd.ams(); |
||||
//println!("rr: {}", rr);
|
||||
//println!("hey 021");
|
||||
} |
||||
|
Loading…
Reference in new issue