| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 347 人关注过本帖
标题:本人新手问个问题
收藏  订阅  推荐  打印
疯狂的小草
Rank: 1
等级:新手上路
帖子:21
积分:312
注册:2007-7-24
本人新手问个问题

老师让 判断 一个数是不是质数  我就这么写了
import java.util.Scanner;

public class s1 {

    public static void main(String[] args) {
         Scanner input = new Scanner(System.in);
         System.out.println("输入一个数:");
         int a = input.nextInt();    
        if((a%a==0 && a%1==0 )|| (a%2!=0&&a%3!=0&&a%4!=0)){
             System.out.println("是质数");
            
         }else{
             System.out.println("不是");
     
         }
        }
    }

永远都是 质数是为什么呢  请详细说明下 谢谢!!
2008-7-18 10:10
zhangran1789
Rank: 1
等级:新手上路
帖子:2
积分:136
注册:2008-6-13
回复 1# 疯狂的小草 的帖子

a%a==0 && a%1==0
这个条件对于任何整数都成立
质数的 定义是只能被自己和1整除的数
你的算法有问题
2008-7-18 14:34
疯狂的小草
Rank: 1
等级:新手上路
帖子:21
积分:312
注册:2007-7-24

  那应该怎么改啊
2008-7-18 19:38
aipb2007
Rank: 12Rank: 12Rank: 12
等级:贵宾
帖子:2877
积分:29352
威望:40
来自:CQU
注册:2007-3-18

if((a%a==0 && a%1==0 )|| (a%2!=0&&a%3!=0&&a%4!=0)){
             System.out.println("是质数");

显然是错的。

判断一个数a是不是素数,最直接的做法是
从2—a-1的数依次做除数,与a相除,若都除不尽,那a就是个素数。

其他还有很多算法用于判断素数,效率均比上面这个优。

Fight  to win  or  die...
2008-7-19 18:46
hurtsky
Rank: 2
等级:注册会员
帖子:75
积分:874
注册:2008-7-10

算法问题,你不明白如何才能判断一个数是质数。可能是你对质数不太了解。
2008-7-20 19:20
love297
Rank: 1
等级:新手上路
帖子:11
积分:208
注册:2008-4-17
呵呵 我来帮你哦

来的晚啊
        不管了

  import java.util.*;
public class ZhiShu{
public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        double panduan = 0;
        int na = 0;
        double k = 0;
        //判断是不是质数的方法:
        //number 分别与 从 2 到number - 1 的数相除
        //如果 相除的结果 都!=0 那他就 是质数
        //只要有一个 ==0 那他就 不是质数
        System.out.println("请输入一个数:");
        int number = input.nextInt();
        for(int i  = 2;i<number;i++){
            panduan = number % i;
            for(int j = 1;j<=i;j++){
                if(panduan==0){
                    System.out.println(number + "不是质数");
                    break;
                }else {
                    System.out.println(number + "是质数");
                    break;
                }
            }
            break;
            
        }
    }
}
2008-7-25 05:46
love297
Rank: 1
等级:新手上路
帖子:11
积分:208
注册:2008-4-17

不好意思
  有两个变量没用上
  忘改了  
   还有 只判断 > 2的数哦
2008-7-25 05:48
共有 346 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.048566 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved