rt

解决方案 »

  1.   

    网上找来的证明:假设只有n个素数,p1, p2, p3, ..., pn  (p1=2, p2=3, p3=5, ...)
    则 m = (p1 * p2 * p3 * ... * pn + 1) 除以所有的质数(p1, p2, p3, ..., pn)
    所得的余数都是 1,因此 m 不是合数,是素数,这与只有 n 个素数相矛盾,
    故素数的个数是无穷的。 
      

  2.   

    String str=""; 
    int a, b; 
    for (a = 2; a <= 100; a++) 

    for (b = 2; b <= a - 1; b++) 

    if (a % b == 0) break; 

    if (b == a) 

    str += " "+a; 


    System.out.println(str); 


    这个是求2到100之间的素数~你参考一下~
      

  3.   

    public class SuShuo {   public int maxNum = 0;/**
    * 判断是不是素数
    */
    public static boolean isSuShuo(int num){
       boolean flg = false;
      
       if (num == 2) {
        flg = true;
       }
       for (int i=2; i<num; i++) {
        if(num%i != 0) {
         flg = true;
        } else {
         break;
        }
       }
       return flg;
    }/**
    * 判断beginum与endnum之间的那些数是素数,并获取最大素数
    */
    public static int getMaxNum(int beginum, int endnum) {
       System.out.println("求 " + beginum + " 与 " + endnum + " 之间的最大素数:");
       for(int i=beginum; i<=endnum; i++) {
        if (SuShuo.isSuShuo(i)) {
          if(maxNum < i){
              maxNum = i;
          }
        }
       }
      
       return maxNum;
    }public static void main(String[] args) {
       System.out.println("0~100之间最大素数为:");
      
       int num1 = SuShuo.getMaxNum(0,100);   System.out.println(num1); 
    }}
      

  4.   

    这里beginum与endnum都指定了为0,100你可以让用户自己输入
      

  5.   

    /**
     * 判断一个数是否为素数
     * 
     * @param i
     * @return true 则为素数; false 为合数或其他
     */
    public boolean isPrimeNumber(int i) {
    if (i >= 2) {
    for (int j = 2; j <= Math.sqrt(i); j++) {
    if (i % j == 0)
    return false;
    }
    return true;
    }
    return false;
    }