100以内素数和问题 java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为 i / 2 与 i 之间的数都不会被i 整除。比如 i = 12, i / 2 = 6; 7 ~ 12 之间的数都不会被12 整除 }else if (j>i/2) {折半的意思。好比, 比如 60除以 2等于 30 。 30以后就不用找了因为除以2已 代表了素数。 public static boolean isPrime(int n){ if(n==1){ return false; }else if(n==2){ return true; }else{ int half=(int) Math.sqrt(n); for(int i=2;i<=half;i++){ if(n%i==0){ return false; } } return true; }}对于这个算法效率会更高,建议采用这种方法 应该是从3到平方根,public static int m(){ boolean bool; int num = 0; for (int i = 3; i < 100; i+=2) {//偶数不用遍历 bool = true; for (int j = 3; j <= Math.sqrt(i); j++) { if (i % j == 0) { bool = false; break; } } if (bool){ System.out.print(i + " "); num += i; } } return num; } Java 容器排序问题,求助~ 简单的问题——关于导入包的问题 利用jni如何在C中将String数组转化为char** 请问这个JTextArea 的滚动条怎么不跟着滚动啊·· 100分求一個完整的JTextField的只能輸入數字或者小數的代碼 java 中Jtable问题 拿最后10分提问题,请大家不要见笑……关于private java学习 java中数据库的读出 一个关于改变JTree中结点的颜色问题 java 泛型 类型擦除问题 [java] jtable更新数据的问题
if(n==1){
return false;
}else if(n==2){
return true;
}else{
int half=(int) Math.sqrt(n);
for(int i=2;i<=half;i++){
if(n%i==0){
return false;
}
}
return true;
}
}
对于这个算法效率会更高,建议采用这种方法
boolean bool;
int num = 0;
for (int i = 3; i < 100; i+=2) {//偶数不用遍历
bool = true;
for (int j = 3; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
bool = false;
break;
}
}
if (bool){
System.out.print(i + " ");
num += i;
}
}
return num;
}