编写程序求2到100以内所有质数

2025-01-04 01:27:00
推荐回答(5个)
回答1:

除二外素数是奇数,所以先输出2从3开始步长为2
易知如果一个合数i能被在[[sqrt(i)],i)中的数整除,
那么除得的商一定在(1,[sqrt(i)]]范围内,
唯一分解定理:每个大于1的正整数均可分解为有限个素数的积
所以只需要搜索[2,[sqrt(i)]]的素数.
上面的代码应该改成k<=sqrt(i)

回答2:

因为一个数从1循环到他本身的话,后面的数是前面的数的倍数,为了提高效率,有人研究出来只要计算到一个数的根号就可以了。。

例如9,从1循环到3就可以找到除断的数了。

回答3:

一个数a,如能分成两个数a=b*c
则b或c>=sqrt(a),所以只要判断倒sqrt(a)即可
不信你自己找几个数试试

回答4:

这种代码不好K

回答5:

sqrt(i)就是求i的平方根