一段代码结果是 3,5,7可我不知道是为什么,请帮忙分析 为什么是这个结果,最好很详细 , 分不够在加,谢谢了
class C6 implements Runnable{ public void run() { for(int a=3;a<=10;a++){
if(isPrime(a))
System.out.print(a+"\t");
}
}
public boolean isPrime(int n){
boolean b=true;
for(int i=2;i<n-1&&b;i++){
if((n%i)==0)
b=false;
}
return b;
}
}
public class Test6{
public static void main(String args[]){
Thread t=new Thread(new C6());
t.start();
}
}
class C6 implements Runnable{ public void run() { for(int a=3;a<=10;a++){
if(isPrime(a))
System.out.print(a+"\t");
}
}
public boolean isPrime(int n){
boolean b=true;
for(int i=2;i<n-1&&b;i++){
if((n%i)==0)
b=false;
}
return b;
}
}
public class Test6{
public static void main(String args[]){
Thread t=new Thread(new C6());
t.start();
}
}
要反问一句为什么不是3,5,7呢?
简单的数学题:
3 2<2&&true =false return true
4 2<3&&true = true return false
.....
.
.
慢慢算吧
就是一个简单的求3到10之间的质数的问题;
质数定义:只有1和它本身这两个因数的自然数叫做质数。
每拿到一个数 从2开始循环到比他小一的数,如果能被除尽则不是质数
for(int i=2;i <n-1&&b;i++){
if((n%i)==0)
b=false;
}
很显然这段程序写的很烂
我写的不是我的算法,是我解释lz给出的程序,我是在回答lz的问题。