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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 田磊阳 金牌黑马   /  2013-3-6 12:56  /  1420 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;
public class Prime {public static void main(String[] args) {
        for (int i = 2; i <= 100; i++)
        {
                CheckPrimeNumber(i);
                }
        }
public static void CheckPrimeNumber(int num)
{
        int sum = 0;
        for (int i = 1; i <= num; i++)
        {
                if (num % i == 0) {
                        sum++;
                }
        }
        if (sum == 2)
        {
                System.out.print(num+",");
          }
        }
}


没看明白啊,谁能帮我解释一下这段代码

评分

参与人数 1黑马币 +9 收起 理由
洪建超 + 9

查看全部评分

5 个回复

倒序浏览
import java.util.*;
public class Prime {public static void main(String[] args) {
          int mark,count=0;
          for(int i=2;i<=100;i++)
          {
              mark=1;            
              for(int j=2;j<=i/2;j++)
              {                 
                  if(i%j==0)
                  {
                      mark=0;
                      break;
                  }
              }
              if(mark==1)
              {
                  count++;
                  System.out.println(i);                 
              }            
          }
          System.out.println("素数的个数为"+count);
         
}
}
回复 使用道具 举报
import java.util.*;
public class Prime {
//首先先说明一下:素数指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {//由这里可以看出我们是在求100以内的素数
CheckPrimeNumber(i);          //因为素数是大于1的自然数,所以i从2开始.
}
}
public static void CheckPrimeNumber(int num) {
int sum = 0;
for (int i = 1; i <= num; i++) {//根据开头的说明,我们可以知道,素数只能够被两个数整除,就是1和它本身
if (num % i == 0) {            
sum++;                 //所以sum++这里只会执行两次,因为素数只能被两个数整除,余数为0嘛,
}                           //满足余数为0的只有1和它本身
}
if (sum == 2) {                        //这里就是在判断,如果sum==2(即次数为素数),
System.out.print(num + ",");           //就输出这个素数
}
}
}

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
  1. public static void main(String[] args) {
  2.                
  3.                 for (int i = 2; i <= 100; i++) {
  4.                         CheckPrimeNumber(i);
  5.                 }
  6.         }

  7.         public static void CheckPrimeNumber(int num) {
  8.                 //定义一个变量,用于存储参数能整除的个数
  9.                 int sum = 0;
  10.                        
  11.                 for (int i = 1; i <= num; i++) {
  12.                         if (num % i == 0) {
  13.                                 //能整除的个数加加
  14.                                 sum++;
  15.                         }
  16.                 }
  17.                 //如果sum等于2,说明num值能被1和自身整除,符合素数。打印输出该素数。
  18.                 if (sum == 2) {
  19.                         System.out.print(num + ",");
  20.                 }
  21.         }
复制代码
不知道解释清楚没。希望对你有所帮助!

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
import java.util.*;
public class Prime {
public static void main(String[] args) {
int mark, count = 0;
for (int i = 2; i <= 100; i++) {  //也是求100以内的素数
mark = 1;
for (int j = 2; j <= i / 2; j++) {//这个for循环,主要是在剔除那些除了1和它本身以外,
if (i % j == 0) {           //还能被非0自然数整除的数
mark = 0;                   //如果i%j==0条件满足,也说明i是还能够被除了1和它本身以外的数整除的数字,
break;                      //就使mark=0,就跳出本次循环,开始执行下面的if语句,但此时mark=0,所以下面的if语句就不能执行                     
}
}
if (mark == 1) {
count++;
System.out.println(i);
}
}
System.out.println("素数的个数为" + count);
}
}
回复 使用道具 举报
谢谢楼上的好朋友
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马