扫码关注官方订阅号
Linux下有个factor命令,用来分解质因数 请问最大能分解多少位数,可以用这个命令进行大数分解么,求教
光阴似箭催人老,日月如移越少年。
查看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)
有人么......
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
查看man没有关于输入数值的范围要求,测试发现39位数以内都没问题,39位数其中一部分可以,太大提示“'……' is too large”
测试输入最大值在1.7013e39~1.7015e39之间,如果感兴趣,你可以逐个改变数值测试最大值。
你可以试试去读源代码:
linux/factor.c
我看了一下,应该是 uintmax_t 类型的上限,也就是 UINTMAX_MAX。
我刚刚使用了64位 Windows 10 的 Ubuntu子系统,测试了一下,上限是 2**127 - 1。
也就是 170141183460469231731687303715884105727。
(170141183460469231731687303715884105728 开始提示too large)
有人么......