java - 我的问题是关于它显示三的倍数的素数代码
问题描述
我的代码是关于显示提供给它的数字之间的所有素数范围,但问题是它显示素数以及三的倍数。
if (number<=1)
{
System.out.println("your number don't has prime number range");
}
else
{
for (j=1;j<=number;j++)
{
counter=0;
for (i=2;i<=j;i++)
{
if (j%i==0)
{
break;
}
else
{
counter=1;
}
}
if (counter==1)
{
System.out.println(j);
}
}
}
34的结果是
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33
解决方案
在以 j 作为计数器变量的循环内尝试此操作。这确保了从 2 到 j-1 的所有数字都不是 j 的因数。还要检查其他素数生成方法,例如Sieve of Eratosthenes,或者通过运行循环来降低此代码的复杂性,直到sqrt(j)
counter=0;
for(i=2;i<j;i++){
if(j%i==0){
counter=1;
break;
}
}
if(counter==0){
System.out.println(j);
}
推荐阅读
- django - 使用 Django Rest Framework 时如何创建自定义列表字段
- boolean-logic - 我如何简化 f = x'yz + xy'z + xyz'?
- microsoft-graph-api - 使用 microsoft-graph 安排会议时的时区问题
- r - 创建自定义类的对象并为其分配方法
- flutter - Flutter 选项卡失去焦点或没有响应点击
- selenium-extent-report - 可以生成的范围报告的大小是否有任何限制?
- swift - 如何使用 uiprefetching 委托使用 AlamofireImage 预取图像?
- sql-server - 在 TO_DATE 函数中使用变量
- javascript - 等待地图函数中的所有承诺
- tfs - 如何在 Azure DevOps 中添加和签入代码?