java 素性测试_Java的素数测试如何工作?

总体理论

条件if(number%j == 0)询问数字是否完全可被j整除

一个素质的定义是

a number divisible by only itself and 1

所以如果你测试2和数字之间的所有数字,并且没有一个是完全可分的,那么它是一个素数,否则不是.

当然,你实际上并不一定要走到这个数字上,因为数字不能被一半以上的任何东西所区分开.

具体部分

循环

这部分运行在增加j的值,如果我们假设该数字= 12,那么它将通过j = 2,3,4,5,6

int j = 2;

.....

while (j <= number / 2)

{

........

j++;

}

如果声明

本节将结果设置为1,如果在任何点数字都可以被j整除.一旦设置为1,结果将永远不会重置为0.

......

if (number % j == 0)

{

result = 1;

}

.....

进一步改进

当然,你可以改进甚至更多,因为你实际上需要不要高于sqrt(数量),但是这个代码段已经决定不这么做了.你所需要的原因不会更高,因为如果(例如)40可以被4整除,则为4 * 10,则不需要为4和10测试.而那些对将始终低于sqrt(数).

还值得注意的是,它们似乎打算将结果用作布尔值,但实际上使用0和1的整数来代替true和false.这不是好习惯.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值