A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

{:soso_e127:}
public class he {
public static void main(String[] args) {
  int i = 2;
  int j = 2;
  int sum = 0;//质数和
  while (i <= 100) {
   j=2;
   boolean zhiShu=true;
   while (j < i) {
    if (i % j == 0){//i是否能被2到i之间的数整除
     zHISHU=false;//不是质数
     break;
    }
    j++;
   }
   if(zHISHU){
    sum+=i;
   }
   i++;
  }
  System.out.println("1-100之间质数的和为:"+sum);
}
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 鼓励下~~

查看全部评分

8 个回复

倒序浏览
public static boolean isPrimeNumber(int number) {
                if (number < 2) {
                        return false;
                }
                for (int i = 2; i <= Math.sqrt(number); i++) {
                        if (number % i == 0 && number != 2) {
                                return false;
                        }
                }
                return true;
        }

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                int sum = 0;
                for (int i = 2; i <= 100; i++) {
                        if (isPrimeNumber(i))// 如果是质数,则累加它
                        {
                                sum += i;
                        }
                }
                System.out.println(sum);
        }
回复 使用道具 举报
class Primes
{
public static void main(String[] args)
{
int sum=0;
for(int x=2;x<=100;x++)
{
if(isPrimes(x))
{sum+=x;

}
}

System.out.println(sum);
}
private static boolean isPrimes(int n)
{
for(int y=2;y<=Math.sqrt(n);y++)
{
if(n%y==0)
return false;
}
return true;
}
}
回复 使用道具 举报
class Primes
{
public static void main(String[] args)
{
int sum=0;
for(int x=2;x<=100;x++)
{
if(isPrimes(x))
{sum+=x;

}
}

System.out.println(sum);
}
private static boolean isPrimes(int n)
{
for(int y=2;y<=Math.sqrt(n);y++)//把范围缩小,到平方根
{
if(n%y==0)
return false;
}
return true;
}
}
回复 使用道具 举报
你如果判断100是不是素数,你如果从1到100来判断的话要判断100次,但是如果用平方根的话,就只需要判断从1到10

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
冯海霞 发表于 2012-6-14 10:03
你如果判断100是不是素数,你如果从1到100来判断的话要判断100次,但是如果用平方根的话,就只需要判断从1 ...

哈哈支持下
回复 使用道具 举报
其实用for循环看起来代码更简洁~!
public class zhishu {

        public static void main(String[] args) {
                int sum=0;
                int i,j;
        for(i=2;i<=100;i++){
                for(j=2;j<=i/2;j++){
                if(i%j == 0)
                    break;
            }
                if(j > i/2){
                        sum+=i;
                       
                        }
               
        }
        System.out.print("1-100质数和:"+sum);
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
胡卿 中级黑马 2012-6-14 11:51:52
8#
本帖最后由 胡卿 于 2012-6-14 11:54 编辑
  1. class Primes
  2. {
  3.   public static void main(String[] args)
  4.           {
  5.                                int sum = 0;
  6.                 for (int i = 2; i <= 100; i++)
  7.                      {
  8.                        
  9.                            for (int y = 2; y <= Math.sqrt(i); y++)
  10.                               {
  11.                                      if ( y != 2||i%y==0) //如果成立,继续返回循环
  12.                                            continue;
  13.                                     else
  14.                                            sum += i;
  15.                               }
  16.                                                 
  17.                 }
  18.                 System.out.println(sum);
  19.       }
  20. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
位雪 中级黑马 2012-6-14 13:31:42
9#
用for循环……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马