use proconio::input; // #[proconio::fastout] fn main() { input! { n: usize, } let mut result = Vec::new(); // let mut x = n; // loop { // println!("{}", x); // if x == 1 { // break; // } // x -= 1; // println!("-1 {}", x); // if x % 2 == 0 { // result.push('A'); // x /= 2; // println!("/2 {}", x); // } else if x % 3 == 0 { // result.push('B'); // x /= 3; // println!("/3{}", x); // } // } rec(n, &mut result); let text: String = result.into_iter().collect(); println!("{}", text); } fn rec(n: usize, result: &mut Vec) -> bool { if n == 1 { return true; } if n == 2 { return false; } let x = n - 1; if x % 2 == 0 { if rec(x / 2, result) { result.push('A'); return true; } } if x % 3 == 0 { if rec(x / 3, result) { result.push('B'); return true; } } false }