fn main(){
let two:u128=2;
let goal_num=two.pow(40);
let mut i:u128=1;
while i<goal_num{
let mut n=i;
while n>=i{
if n%2==0{
n=n>>1;
}
else{
n=(n<<1)+n+1;
}
i+=2;
}
}
println!("end{goal_num}numbers");
}
병렬, 비동기 프로그래밍, dp 적용 안한 상태이다. 홀수만 검사한다.
2^30까지 M2맥북에서 잘 돌아간다.