import java.io.*;public class PrimeNumber{
public static void main(String args[]){
System.out.println("***prime number between 100 and 200***");
int i,j,k;
k=0;
for(i=1;i<=200;i=i+2){
for(j=1;j<=i;j++){
if(i%j==0)
  k++;
}
    if(k==2){
     System.out.println("  "+i);
     k=0;
    }
}
}
}这样算素数不行么、哪里错了,大虾们指正下,非常感谢

解决方案 »

  1.   

    你能吧你的思路说出来么
    for (int i = 101; i < 200; i = i + 2) {
    //偶数肯定不是素数所以i = i + 2

    for (int temp = 2; temp <= (int) Math.sqrt(i); temp++) {
    //设定个临时变量temp 当temp<= i的开方的时候 temp++

    if (i % temp == 0){
    //如果i被temp整除, 说明i不是素数  break掉
    break;
    }
    if(temp == (int) Math.sqrt(i)){
    //如果i被一直不能被temp整除, 说明i是素数, 打印出来
    System.out.println(i);
    }
    } }
      

  2.   

    //输出101到200间的质数
    public class Text2 {
    public static void main(String args[]) {
    for(int i=101;i<=200;i+=2){//直接排除101到200间的所有偶数
    boolean f = true;        //假设i为质数,f为真
    for (int j=2;j<i;j++) {     
      if(i % j == 0){
      f= false;            //此种情况f为假
      break;
    }
    }
    if(!f) {continue;}       //判断“非f”是否为真
    System.out.print(i + " ");
      
    }
    }
    }
      
      

  3.   

    [code=Java]import java.util.InputMismatchException;
    import java.util.Scanner;public class PrimeNumber { private int prime;
     boolean flag = true;
     int[] gold; public PrimeNumber() {
     } protected int setPrime() {  Scanner _prime = null;
      System.out.print("\n\t请输入要验证的正整数:");
      _prime = new Scanner(System.in);
      prime = _prime.nextInt();  if (prime <= 0) {   System.out.print("\t"+prime + "不是正整数,素数只能是正整数的,请再来一次!\n");
       setPrime();  }  return prime; } protected void isPrime() {  int  = 0;
      for (int i = 1; i <= prime; i++) {   if (prime % i == 0) {
        ++;
       }  }
      if ( > 2) {   System.out.print("\t" + prime + "不是素数!\n\n");  } else {   System.out.print("\t" + prime + "是素数!\n\n");  }
     }检验一个数是不是素数的程序很久以前写的,写的不好,供LZ参考
      

  4.   


    import java.util.InputMismatchException;
    import java.util.Scanner;public class PrimeNumber {private int prime;
    boolean flag = true;
    int[] gold;public PrimeNumber() {
    }protected int setPrime() {Scanner _prime = null;
    System.out.print("\n\t请输入要验证的正整数:");
    _prime = new Scanner(System.in);
    prime = _prime.nextInt();if (prime <= 0) {System.out.print("\t"+prime + "不是正整数,素数只能是正整数的,请再来一次!\n");
    setPrime();}return prime;}protected void isPrime() {int  = 0;
    for (int i = 1; i <= prime; i++) {if (prime % i == 0) {
    ++;
    }}
    if ( > 2) {System.out.print("\t" + prime + "不是素数!\n\n");} else {System.out.print("\t" + prime + "是素数!\n\n");}
    }
      

  5.   


    import java.util.InputMismatchException;
    import java.util.Scanner;public class PrimeNumber {private int prime;
    boolean flag = true;
    int[] gold;public PrimeNumber() {
    }protected int setPrime() {Scanner _prime = null;
    System.out.print("\n\t请输入要验证的正整数:");
    _prime = new Scanner(System.in);
    prime = _prime.nextInt();if (prime <= 0) {System.out.print("\t"+prime + "不是正整数,素数只能是正整数的,请再来一次!\n");
    setPrime();}return prime;}protected void isPrime() {int  = 0;
    for (int i = 1; i <= prime; i++) {if (prime % i == 0) {
    ++;
    }}
    if ( > 2) {System.out.print("\t" + prime + "不是素数!\n\n");} else {System.out.print("\t" + prime + "是素数!\n\n");}
    }
      

  6.   

    public class Text2 {
        public static void main(String args[]) {
            for(int i=101;i<=200;i+=2){//直接排除101到200间的所有偶数
                boolean f = true;        //假设i为质数,f为真
                for (int j=2;j<i/2;j++) {     
                  if(i % j == 0){
                      f= false;            //此种情况f为假
                      break;
                    }
                }
                if(!f) {continue;}       //判断“非f”是否为真
                System.out.print(i + " ");
              
            }
        }
    }
      

  7.   

    public class PrimeTest {
    public static boolean checkPrime(int num) {
    if (num < 0)// 负数不是素数
    return false;
    if (num == 1 || num == 2)// 1和2是素数
    return true;
    for (int i = 2; i < Math.sqrt(num) + 1; i++) {
    if (num % i == 0)
    return false;
    }
    return true;
    }
    public static int getPrimeNum(int start, int end) {
    int sum = 0;
    for (int i = start; i <= end; i++) {
    if (checkPrime(i) == true)// 是素数
    {
    System.out.print(i + "   ");
    sum++;
    }
    }
    return sum;
    }
    public static void main(String args[]) {
    int start = 1;
    int end = 100;
    int sum = getPrimeNum(start, end);
    System.out.println("\n" + start + "~" + end + "间共有" + sum + "个素数!");
    }
    }
    //简单明了!!
      

  8.   


    public class PrimeTest {
    public static boolean checkPrime(int num) {
    if (num < 0)// 负数不是素数
    return false;
    if (num == 1 || num == 2)// 1和2是素数
    return true;
    for (int i = 2; i < Math.sqrt(num) + 1; i++) {
    if (num % i == 0)
    return false;
    }
    return true;
    }
    public static int getPrimeNum(int start, int end) {
    int sum = 0;
    for (int i = start; i <= end; i++) {
    if (checkPrime(i) == true)// 是素数
    {
    System.out.print(i + " ");
    sum++;
    }
    }
    return sum;
    }
    public static void main(String args[]) {
    int start = 1;
    int end = 100;
    int sum = getPrimeNum(start, end);
    System.out.println("\n" + start + "~" + end + "间共有" + sum + "个素数!");
    }
    }
    //简单明了!!
      

  9.   


    import java.util.InputMismatchException;
    import java.util.Scanner;public class PrimeNumber {  private int prime;
     boolean flag = true;
     int[] gold; public PrimeNumber() { } protected int setPrime() {  Scanner _prime = null;
      System.out.print("\n\t请输入要验证的正整数:");
      _prime = new Scanner(System.in);
      prime = _prime.nextInt();  if (prime <= 0) {   System.out.print("\t"+prime + "不是正整数,素数只能是正整数的,请再来一次!\n");
       setPrime();  }  return prime; } protected void isPrime() {  int  = 0;
      for (int i = 1; i <= prime; i++) {   if (prime % i == 0) {
        ++;
       }  }
      if ( > 2) {   System.out.print("\t" + prime + "不是素数!\n\n");  } else {   System.out.print("\t" + prime + "是素数!\n\n");  }
     }
     
     public void showTips() {  System.out
        .print("\t*****************************************************************\n\n");
      System.out.print("\t\t\t#\t   GO----继续验证\t    #\n");
      System.out.print("\t\t\t#\t   EXIT--退出程序\t    #\n\n");
      System.out.print("\t\t\t#\t GO,EXIT不区分大小写\t    #\n\n");
      System.out
        .print("\t*****************************************************************\n"); } protected boolean isExit() {  String isexit = null;  showTips();
      
      System.out.print("\t请选择您的下一步操作:");
      Scanner _isexit = new Scanner(System.in);
      isexit = _isexit.next();
      if (isexit.equalsIgnoreCase("EXIT")) {   flag = false;
       System.out.print("\n\n\t程序已正常退出,拜拜");   return flag;  } else if (isexit.equalsIgnoreCase("GO")) {   flag = true;   return flag;  } else {   flag = true;   System.out.print("\t" + isexit + "不是程序的命令,请重新来过!\n\n");   isExit();
       return flag;
      } } public static void main(String[] args) {  PrimeNumber primenumber = new PrimeNumber();  while (primenumber.flag) {
       try {    primenumber.setPrime();
        primenumber.isPrime();
        primenumber.isExit();   } catch (InputMismatchException ims) {    System.out.print("\t您的输入与要求不一致,请确定后重新来过!\n\n");   }
      }
     }
    }本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/XiaoHuanJie/archive/2009/09/14/4552651.aspx
      

  10.   

    if(i%j==0)求素数不是这么求的
      

  11.   

    判断   i==2  时重置了   k = 0 如果不等于2   ,没给k  重置0
      

  12.   

    已经很明了了啊,checkPrime(int num)判断num是否是素数;
    getPrimeNum(int start,int end)获取start——end间有多少个素数,并把素数打印出来。
      

  13.   


    public class PrimeTest {
    //判断一个整数num是否是素数
    public static boolean checkPrime(int num) {
    if (num < 0)// 负数不是素数
    {return false;}
    if (num == 1 || num == 2)// 1和2是素数
    {return true;}
    for (int i = 2; i < Math.sqrt(num) + 1; i++) {
    if (num % i == 0){
    return false;
    }
    }
    return true;
    }
    //获取start——end间素数的个数,并打印出素数
    public static int getPrimeNum(int start, int end) {
    int sum = 0;
    for (int i = start; i <= end; i++) {
    if (checkPrime(i) == true)// 是素数
    {
    System.out.print(i + " ");
    sum++;
    }
    }
    return sum;
    }
    public static void main(String args[]) {
    int start = 1;
    int end = 100;
    int sum = getPrimeNum(start, end);
    System.out.println("\n" + start + "~" + end + "间共有" + sum + "个素数!");
    }
    }
    //简单明了!!楼主还有什么不明白的吗?
      

  14.   


    public class PrimeTest{
        // 判断一个整数num是否是素数
        public static boolean checkPrime(int num) {
            if (num < =0)// 负数和0不是素数
            {
                return false;
            }
            if (num == 1 || num == 2)// 1和2是素数
            {
                return true;
            }
            for (int i = 2; i < Math.sqrt(num) + 1; i++) {
                if (num % i == 0) {
                    return false;
                }
            }
            return true;
        }    // 获取start——end间素数的个数,并打印出素数
        public static int getPrimeNum(int start, int end) {
            int sum = 0;
            for (int i = start; i <= end; i++) {
                if (checkPrime(i) == true)// 是素数
                {
                    System.out.print(i + " ");
                    sum++;
                }
            }
            return sum;
        }    public static void main(String args[]) {
            int start = 100;
            int end = 200;
            int sum = getPrimeNum(start, end);
            System.out.println("\n" + start + "~" + end + "间共有" + sum + "个素数!");
        }
    }
    // 简单明了!!楼主还有什么不明白的吗?运行结果如下:
    101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 
    100~200间共有21个素数!
    还不结贴?