#[allow(unused_macros)]
macro_rules! input {
    ( $($t:ty),* ) => {{
        let mut s = String::new();
        std::io::stdin().read_line(&mut s);
        let mut splits = s.trim().split_whitespace();
        ($( { splits.next().unwrap().parse::<$t>().unwrap() },)*)
    }}
}


#[allow(dead_code)]
fn divisors(n: u64) -> Vec<u64> {
    let mut res = vec![];
    for i in (1..(((n as f64).sqrt().floor() as u64) + 1)).rev() {
        if n % i == 0 {
            res.insert(0, i);
            if i != n / i {
                res.push(n / i);
            }
        }
    }
    return res;
}

#[allow(unused_must_use)]
#[allow(unused_variables)]
fn solve() {
    let (n,) = input!(u64);

    let sum: u64 = divisors(n).iter().sum();

    println!("{}", sum);
}

fn main() {
    solve();
}