我试图找出数字是否是1000或更长的素数.我想使用的算法是6k +/- 1
我面临的问题是如何在java中存储这么长的数字,它是以字符串作为输入.
要么
为了做到可分性,应该只考虑数字的最后几位数.
请指教
如何找到小于n的最大素数,其中n≤10?请帮我找一个高效的算法.
for(j=n;j>=2;j--) {
if(j%2 == 1) {
double m = double(j);
double a = (m-1)/6.0;
double b = (m-5)/6.0;
if( a-(int)a == 0 || b-(int)b == 0 ) {
printf("%llu\n",j);
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我使用这种方法,但这对于n> 10 ^ 10来解决是无效的.
如何优化这个..
编辑: 解决方案:对每个j使用Primality测试.