add day 25
solved by claude
This commit is contained in:
Generated
+7
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "day25"
|
||||
version = "0.1.0"
|
||||
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "day25"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
@@ -0,0 +1,27 @@
|
||||
fn main() {
|
||||
let row: u64 = 3010;
|
||||
let col: u64 = 3019;
|
||||
|
||||
let d = row + col - 1;
|
||||
let index = d * (d - 1) / 2 + col; // 1-indexed position, (1,1) -> 1
|
||||
|
||||
const START: u64 = 20151125;
|
||||
const MUL: u64 = 252533;
|
||||
const MOD: u64 = 33554393;
|
||||
|
||||
let code = (START * mod_pow(MUL, index - 1, MOD)) % MOD;
|
||||
println!("{}", code);
|
||||
}
|
||||
|
||||
fn mod_pow(mut base: u64, mut exp: u64, modulus: u64) -> u64 {
|
||||
let mut result = 1u64;
|
||||
base %= modulus;
|
||||
while exp > 0 {
|
||||
if exp & 1 == 1 {
|
||||
result = result * base % modulus;
|
||||
}
|
||||
exp >>= 1;
|
||||
base = base * base % modulus;
|
||||
}
|
||||
result
|
||||
}
|
||||
Reference in New Issue
Block a user