任意输入一个数...然后判断它是否是质数~!!
能不能只用if写出表达式?
请高手帮忙啊!!!
小弟不胜感激!

解决方案 »

  1.   

    做循环,用n除以2~(n-1)取余,均不得零就质数,当然先排除0、1、2还有一个笨方法是你把所有质数写个数组,判断n在不在数组中
      

  2.   

    import java.util.Scanner;public class IsPrimeNumber { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("请输入一个整数");
    Scanner s = new Scanner(System.in);
    int number = s.nextInt();
    int k=0;
    int i=0;
    k = (int)Math.sqrt((double)number);
    for(i=2;i<=k;i++){
    if(number%i == 0) break;
    }
    if(i>k){
    System.out.println(number+" is a prime number!");
    }else{
    System.out.println(number + " isn't a prime number!");
    }
    }}
    你看这个行吗?
      

  3.   

    用個計算量少很多的辦法
    篩選法
    如果你求k以內的質數,則設一個長度為k+1的數組,從2開始
    for (int i = 2 ; i <= k ; ++i) {
    for (int j = 2 ; j <= k / i; ++j ) {
    isPrime[i * j] = false;
    }
    }
    for (int i = 2 ; i <= k ; ++i)
    if (isPrime[i]) ...
      

  4.   

    加上一句if (!isPrime[i]) continue;