U138343 炼金术士
题目背景
某日午后,$Seaway$一觉醒来,发现自己穿越到了十三世纪的欧洲,并成为了一名炼金术士......在反穿越失败后,$Seaway$接受了这个事实,并尝试着实现每个炼金术士的毕生夙愿——点石成金......
题目描述
经过多年探索,$Seaway$终于发现了点石成金的奥秘,这涉及到一个自远古传承而来的阵法。其法则是:把$N$块质量为$1$洛夫洛丝(炼金术士所用单位)的石块分成若干堆放到阵法里,阵法会进行判定:如果这些堆石块能拼凑出从$1$洛夫洛丝到$N$洛夫洛丝的所有质量,那么这些石块就会都变成金子。
自然,石块分堆是需要消耗精力的。$Seaway$贪心地想消耗最少的精力获得金子。那么,请你为他算出:最少把石块分成几堆,使之符合点石成金的要求。
输入格式
从文件$alchemist.in$中读入数据。
一行一个整数$N$。
输出格式
输出到文件$alchemist.out$中。
一行一个整数$ans$,表示最少要分几堆。
说明/提示
【**样例1解释**】
分成$2$堆:$[1,1]$。
【**样例2解释**】
分成$3$堆:$[1,2,3]$。
【**数据范围**】
对于$50\%$的数据,$1\le N\le 20$。
对于$60\%$的数据,$1\le N\le 10^3$。
对于$80\%$的数据,$1\le N\le 10^9$。
对于全部数据,$1\le N\le 18,446,744,073,709,551,615$。