linux factor最大数

Linux下有个factor命令,用来分解质因数 请问最大能分解多少位数,可以用这个命令进行大数分解么,求教

阅读 4.7k
3 个回答

查看man没有关于输入数值的范围要求,测试发现39位数以内都没问题,39位数其中一部分可以,太大提示“'……' is too large”
测试输入最大值在1.7013e39~1.7015e39之间,如果感兴趣,你可以逐个改变数值测试最大值。

cnbubble@DESKTOP:~/test$ factor 170150000000000000000000000000000000000
factor: ‘170150000000000000000000000000000000000’ is too large
cnbubble@DESKTOP:~/test$ factor 170130000000000000000000000000000000000
170130000000000000000000000000000000000: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 53 107
cnbubble@DESKTOP:~/test$ echo '170130000000000000000000000000000000000' |awk '{print length($0)}'
39

你可以试试去读源代码:
linux/factor.c

我看了一下,应该是 uintmax_t 类型的上限,也就是 UINTMAX_MAX。

我刚刚使用了64位 Windows 10 的 Ubuntu子系统,测试了一下,上限是 2**127 - 1。
也就是 170141183460469231731687303715884105727。
(170141183460469231731687303715884105728 开始提示too large)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题