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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yeqiang 中级黑马   /  2014-4-20 22:57  /  1088 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class sushu
{
public static void main(String[] args)
{
  int a=5;
  shu(a);
}
public static int shu(int num)
{
  int i;
  int count=0;
   for(i=2;i<sqrt(num);i++)
  {
               if(num/i==0)
   {
       return 0;
              System.out.println(num+"不是素数");
   }
      else
   {
       return 1;
          count ++;
     System.out.println(num+"是素数!");
   }
  }
  System.out.println("共有"+count+"个素数!");
}
}

点评

注意下排版....  发表于 2014-4-20 23:45

7 个回复

倒序浏览
   for(i=2;i<sqrt(num);i++)
这句应该改成   for(i=2;i<Math.sqrt(num);i++)

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 kuroro自走核炮 于 2014-4-21 10:21 编辑
  1. class sushu
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int a=5;
  6.                 shu(a);
  7.         }
  8.         public static void shu(int num)//从函数内容中判断你这个函数功能是判断一个数是否是素数,那么返回int值没有意义。如果你想要判断一个范围中有多少个素数,那么你这个函数功能则完全不能胜任。
  9.         {
  10.                 int i;
  11.                 int count=0;
  12.                 //for(i=2;i<sqrt(num);i++)Match.sqrt()是取平方根的方法……,不明白你这一步是什么意思。
  13.                 for(i=2;i<num;i++)
  14.                 {
  15.                         //if(num/i==0)素数的概念是不能被整除,那么需要取余数计算。你用除法计算能得出什么呢?
  16.                         if(num%i==0)
  17.                         {        
  18.                                 //return 0;这个零返回的没有意义啊。                        
  19.                                 System.out.println(num+"不是素数");
  20.                                 
  21.                         }
  22.                         else
  23.                         {
  24.                                 //return 1;这个1也返回的没有意义。
  25.                                 count ++;
  26.                                 //System.out.println(num+"是素数!");如果一个数仅仅是和一个数不能整除,就能判断这个数是素数,是不正确的。必须要保证除了1和他本身之外都不能整除才是素数。
  27.                         }
  28.                 }
  29.         if ((count+2)==num)
  30.                 System.out.println(num+"是素数!");
  31.                 //System.out.println("共有"+count+"个素数!");
  32.         }
  33. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报 1 0
取平方更要加等号。
回复 使用道具 举报

非常感谢,我纠结这一句好长里就是不知道怎么改,这下总算整出来了
回复 使用道具 举报

非常感谢,让你费心了,感觉受益不少!
回复 使用道具 举报
z1342802487 发表于 2014-4-21 10:38
取平方更要加等号。

恩好的我在改改
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马