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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-张超 中级黑马   /  2013-4-23 23:07  /  1844 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

判断101-300之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

12 个回复

倒序浏览
  1. /*
  2. 判断101-300之间有多少个素数,并输出所有素数。
  3. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
  4. */

  5. class  Getprime
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 int count = 0;
  10.                 System.out.println("101到300之间的素数为:");
  11.                 for(int x=102; x<=300; x++)
  12.                 {                       
  13.                         if(x%2==0)
  14.                                 System.out.print(x+",");
  15.                                 count++;
  16.                 }
  17.                 System.out.println("101到300之间的素数为"+count);

  18.                 /*
  19.                 计数器思想。
  20.                 通过一个变量记录住数据的状态变化。
  21.                 也许通过循环完成。

  22.                 */
  23.         }
  24. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
素数————定义有错误?
回复 使用道具 举报
本帖最后由 张洪慊 于 2013-4-24 00:20 编辑

/*
勾起了我对C的回忆 - -
*/
  1. /*
  2. 判断101-300之间有多少个素数,并输出所有素数。
  3. 思想:
  4. 1.利用for循环逐个判断
  5. 2.一旦该数能整除其中(2~根号n)一个数,break;
  6. 3.在跳出的循环外面加上判断是否是素数的条件
  7. */
  8. class PrimeDemo{
  9.   public static void main(String[] args){
  10.    int sum=0;
  11.    for(int number=101;number<=300;number+=2){//这里跳过偶数,肯定不是
  12.       
  13.          int value=(int)Math.sqrt((double)number);//这里用到了Math类中的sqrt方法
  14.          int i;
  15.          for(i=2;i<=value;++i){
  16.         if(number%i==0)//一旦整除,说明不是素数,立马结束该循环
  17.               break;
  18.          }
  19.         if(i>value){//说明为素数
  20.           System.out.print(number+"\t");//输出下该素数
  21.           ++sum;
  22.         }
  23.    }
  24.   System.out.println("\n素数个数: "+sum);
  25.   }

  26. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
Lobon 发表于 2013-4-23 23:39
素数————定义有错误?

没有。你仔细看看就明白了1
回复 使用道具 举报
钟佩桓 发表于 2013-4-23 23:31

这段代码能行吗?
回复 使用道具 举报
薛淑凯 发表于 2013-4-24 17:01
这段代码能行吗?

我运行了是可以的
回复 使用道具 举报
  1. public class Sushu {
  2.         /**
  3.          * 题目:判断101-300之间有多少个素数,并输出所有素数。
  4.                 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),
  5.                 如果能被整除, 则表明此数不是素数,反之是素数。   
  6.          */
  7.         public static void main(String[] args) {
  8.                 int count = 0;//将次数初始化
  9.                 for(int i=101;i<300;i+=2){//对101~300逐个判断,去除偶数,因为偶数肯定不是素数
  10.                         boolean bool = false;//定义一个布尔类型的值并初始化
  11.                         for(int j=2;j<=Math.sqrt(i);j++){//除数是从2到被除数的平方根
  12.                                 if(i%j==0){
  13.                                         bool = false;//如果能整除,则说明不是素数,跳出循环
  14.                                         break;
  15.                                 }else{
  16.                                          bool = true;//不能被整除将bool设为真
  17.                                  }
  18.                         }
  19.                         if(bool){//如果bool为真,计数器加1,并将素数打印出来
  20.                                 count++;
  21.                                 System.out.println("素数是"+i);
  22.                         }                       
  23.                 }
  24.                 System.out.println("素数的总个数是:"+count);//打印素数的总个数

  25.         }

  26. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
黄玉昆 黑马帝 2013-4-24 19:17:00
9#
如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
  1. /*
  2. 判断101-300之间有多少个素数,并输出所有素数。
  3. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),
  4. 如果能被整除,则表明此数不是素数,反之是素数.

  5. */
  6. class  SuShu
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 int count = 0;
  11.                 for(int x = 101;x<300;x+=2)//
  12.                 {
  13.                         boolean flag = false;
  14.                         for(int y= 2;y<Math.sqrt(x);y++)
  15.                         {
  16.                                 if(x%y==0)
  17.                                 {
  18.                                         flag = false;
  19.                                         break;
  20.                                 }
  21.                                 else
  22.                                 {
  23.                                         flag = true;
  24.                                 }
  25.                        
  26.                                
  27.                         }
  28.                         if(flag)
  29.                         {
  30.                                 count++;
  31.                                 System.out.print(x);
  32.                         }
  33.                         System.out.print(" ");
  34.                        
  35.                 }
  36.                 System.out.println("素数的个数"+count);

  37.         }
  38. }
复制代码
回复 使用道具 举报
Lobon 中级黑马 2013-4-25 23:38:45
11#
刘学明    发表于 2013-4-24 23:06

11x11  13x13 17x17 怎么搞啊!
回复 使用道具 举报
Lobon 中级黑马 2013-4-25 23:41:18
12#
挖槽,我的最简单
class  shushu
{
        public static void main(String[] args)
        {
                int count = 0;
                System.out.println("101到300之间的素数为:");
                for(int x=101; x<=300; x++)
                {                        
                                        if(x%2!=0&&x%3!=0&&x%5!=0&&x%7!=0&&x%11!=0&&x%13!=0&&x%17!=0)
                                        {
                                                System.out.print(x+",");
                                                count++;
                                        }
                }
                System.out.println("\n101到300之间素数个数为:"+count);

                /*
                计数器思想。
                通过一个变量记录住数据的状态变化。
                也许通过循环完成。

                */
        }
}

评分

参与人数 1技术分 +2 收起 理由
黄玉昆 + 2

查看全部评分

回复 使用道具 举报
版主代理郑重提示:如果楼主问题已经解决那么。在自己发表的帖子下面,点“修改”,
然后把主题的分类标记成“已解决”。就OK了{:soso_e102:}

评分

参与人数 1黑马币 +20 收起 理由
此去经年 + 20 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马