#[ import sequtils,strutils,algorithm,math,sugar,macros,strformat import sets,tables,intsets,queues,heapqueue,bitops template get*():string = stdin.readLine().strip() macro unpack*(arr: auto,cnt: static[int]): auto = let t = genSym(); result = quote do:(let `t` = `arr`;()) for i in 0..= dec * 10: dec *= 10 continue return a * dec * 10 + b let n = get().parseInt() var results = initIntSet() results.incl concat(1,n) results.incl concat(n,1) var nMax = n var is2 = 1 if nMax mod 2 == 0: results.incl concat(2,n div 2) results.incl concat(n div 2,2) nMax = nMax div 2 is2 = 2 var iMax = nMax.float.sqrt.int var i = 1 while true: i += 1 if i > iMax: break if nMax mod i != 0: continue let a = i * is2 let b = cast[int](n div a) let c = i let d = cast[int](n div i) results.incl(a.concat(b)) results.incl(b.concat(a)) results.incl(d.concat(c)) results.incl(c.concat(d)) echo results.card