求100以内所有质数的和 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class UseLabel { public static void main(String[] args) {int sum = 0;Loop: for(int i=2; i<100; i++) { for(int j=2;j<i;j++) if( i%j == 0) continue Loop; sum = sum + i; } System.out.println(sum); } } 求质数的话这个算法效率较高:public static int primeNumber(int[] prime, int n, int total) { int i, j; int gab = 2; boolean count; for(i = 7; i <= n;i += gab) { count = true; gab = 6 -gab; for(j = 0; prime[j] <= Math.sqrt( i );j++) { if(i % prime[j] == 0) { count = false; break; } } if(count) { prime[total] = i; total++; } } return total; }你这只有100数用这个也行:public static boolean isPrimeNumber(int n) { int temp = n; if(n<2){ return false; } int i = 2; while(i<=(Math.sqrt(temp))) { if(temp % i == 0) { return false; } i++; } return true; } 如果a为质数,则从1到 a的平方根 之间的质数都不能 整除 a。 public class Test4 { public static void main(String args[]){ int sum = 0; boolean isPrimeNumber = true; for(int i = 2;i < 100;i++){ for(int j = 2; j <= Math.sqrt(i); j++){ if((i % j) == 0){ isPrimeNumber = false; break; } } if(isPrimeNumber == true) sum += i; isPrimeNumber = true; } System.out.println(sum); }} 把 j <= Math.sqrt(i) 改成 j * j <= i 会快很多 import java.util.*;public class test{ public static void main(String[] args) { boolean[] isNotPrime = new boolean[100]; int sum=0; for (int i = 2; i < 100; ++i){ if (!isNotPrime[i]){ sum+=i; for (int j = i*i; j < 100; j+=i){ isNotPrime[j] = true; } } } System.out.println(sum); }} 如果a为质数,则从1到 a的平方根 之间的整数数都不能 整除 a。 正则表达式实现下面三个功能? 寻找知情人士,字面值整数常量类型问题 各位前辈好,问一个关于学习JAVA的问题 数据库SQL的一个错误,大家进来看看啊! 我搞不明白了 类似VB中的DataGrid控件那样的组件,是用什么创建。 很简单的一个问题 我在一个applet中import了sun.net.ftp.*,结果就运行不了了 请问如何在applet中实现图象的动态转化? 什么是抽象类主要干什么用 高分求cystal report的下载地址 下面两段代码哪一段的执行效率高? log如何使用
{ public static void main(String[] args)
{
int sum = 0;
Loop:
for(int i=2; i<100; i++)
{ for(int j=2;j<i;j++)
if( i%j == 0) continue Loop;
sum = sum + i;
}
System.out.println(sum);
}
}
int i, j;
int gab = 2;
boolean count;
for(i = 7; i <= n;i += gab) {
count = true;
gab = 6 -gab;
for(j = 0; prime[j] <= Math.sqrt( i );j++) {
if(i % prime[j] == 0) {
count = false;
break;
}
}
if(count) {
prime[total] = i;
total++;
}
}
return total;
}你这只有100数用这个也行:public static boolean isPrimeNumber(int n) {
int temp = n;
if(n<2){
return false;
}
int i = 2;
while(i<=(Math.sqrt(temp))) {
if(temp % i == 0) {
return false;
}
i++;
}
return true;
}
public static void main(String args[]){
int sum = 0;
boolean isPrimeNumber = true;
for(int i = 2;i < 100;i++){
for(int j = 2; j <= Math.sqrt(i); j++){
if((i % j) == 0){
isPrimeNumber = false;
break;
}
}
if(isPrimeNumber == true)
sum += i;
isPrimeNumber = true;
}
System.out.println(sum);
}
}
public class test{
public static void main(String[] args) {
boolean[] isNotPrime = new boolean[100];
int sum=0;
for (int i = 2; i < 100; ++i){
if (!isNotPrime[i]){
sum+=i;
for (int j = i*i; j < 100; j+=i){
isNotPrime[j] = true;
}
}
}
System.out.println(sum); }
}