声明
我只是把数论相关的东西放在了一起,会有自己的理解,所以会有错误哈,欢迎在评论区中指出,另外有啥看不懂的也可以在评论区留言,我看到后就回你
质数
暴力
- 质数一般都是奇数,除了2
- 小于2的不用考虑了
java
boolean prime(int n){
if(n<2)
return false;
if(n!=2 && n % 2==0 )
return false;
for(int i=2;i<n;i++){
if(n%i==0)
return false;
}
return true;
}
优化1 对for循环的上界进行调整
这个优化你见过,就是将for循环的上界改为sqrt(n)
,但是这样写的话是比较费时间的,我听一位大佬说的,sqrt这个函数比较慢,倒不如这么写
java
int upperBound = sqrt(n);
for(int i=2;i<=upperBount;i++)
...
这样不用重复计算了
当时那位大佬推荐下面的写法
java
for(int i=2;i<=n/i;i++)
...
这个记住一下,这个知识点我还没有学会