声明
我只是把数论相关的东西放在了一起,会有自己的理解,所以会有错误哈,欢迎在评论区中指出,另外有啥看不懂的也可以在评论区留言,我看到后就回你
质数
暴力
- 质数一般都是奇数,除了2
- 小于2的不用考虑了
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这个函数比较慢,倒不如这么写
int upperBound = sqrt(n);
for(int i=2;i<=upperBount;i++)...
这样不用重复计算了
当时那位大佬推荐下面的写法
for(int i=2;i<=n/i;i++)...
这个记住一下,这个知识点我还没有学会