黑马程序员技术交流社区
标题:
问一个关于质数的问题,必须帮忙啊大虾们
[打印本页]
作者:
无气打火机
时间:
2013-6-21 18:19
标题:
问一个关于质数的问题,必须帮忙啊大虾们
本帖最后由 无气打火机 于 2013-6-22 21:02 编辑
class Demo {
public static void main(String[] args) {
//System.out.println("Hello World!");
int[] arr={33,22,31};
int inter=2;
boolean isZhi=true;
for (int x = 0; x < arr.length; x++) {
while(inter < (arr[x]/2)){
if(arr[x] % inter == 0) {
isZhi=false;
break;
}
inter++;
}
if(isZhi) {
arr[x]=0;
}
System.out.println(arr[x]);
}
}
}
以上是代码 为什么31不赋值为0 它是质数啊
作者:
刘利民
时间:
2013-6-21 20:25
以下是修改后的程序,部分解释在代码中:
class Demo
{
public static void main(String[] args)
{
int[] arr={33,22,31};
// int inter=2;
// boolean isZhi=true;
/*
boolean标志,如果定义在这里,那么它参与整个运算过程中,只赋值了一次,
那么,在第二次赋值时,也就是 执行“isZhi=false;”语句后,之后的isZhi的值
一直为false,那么arr[x] = 0;就一直执行不到。
inter 的初始化也是一样的道理。
*/
for (int x = 0; x < arr.length; x++)
{
int inter=2;
boolean isZhi=true;
while(inter < (arr[x]/2))
{
if(arr[x] % inter == 0)
{
isZhi=false;
break;
}
inter++;
}
if(isZhi)
{
arr[x]=0;
}
System.out.println(arr[x]);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2