寻找1729 by awk

记得拉马努金关于1729的故事吗?

小脚本算出1729

#/bin/bash
echo | awk ' { input = 0 }

END {
  while(check_sum(input) < 2) { input++ }
  print input 
}

function check_sum(argi) {
  r = 0
  for (i = 1; i < int(argi/2); i++) 
    if ((check_cube(i) == 1) && (check_cube(argi - i) == 1) && (argi != i*2)) { r++ }
  return r
}

function check_cube(argj) {
  for (j = 1; j < argj + 1; j++)
  { b = j*j*j; if (b > argj) return 0; if (j*j*j == argj) return 1; }
}
'

你可能感兴趣的:(bash)