几种求素数的方法

/*
   判断101-200之间有多少个素数,并输出所有素数。 
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 
则表明此数不是素数,反之是素数。 
 */

public class Demo1 {

	public static void main(String[] args) {
		int sum=0;
		for(int i=100;i<=200;i++) {
			while(i>100&&i<200) {
				if(i%2==0) {
				System.out.println("不是素数:"+i);		
				break;
			}
			else {
				System.out.println("是素数:"+i +" ");
				break;
			}
			}	
		}
		System.out.println("共有"+sum+"个素数");
	}
}
public class Demo2 {

    public static void main(String[] args) {
        int sum=0;
        for (int i = 101; i < 201; i++) 
        {
            for (int j = 2; j <=i; j++)
            {
                if(j==i)
                {
                    System.out.println(j);
                }
                else if(i%j==0)
                {
                    sum++;
                   break;
                }
            }   
        }
        System.out.println("总共有"+(100-sum)+"个素数");
    }
}

/*
  else if(i%j==0)
                {
                    sum++; 
                   break; 
                }
   这里可能有些同学一下没有转过来:这里的巧妙之处在于 break:跳出当前循环 ,注意这里是双层循环哦。
 仔细想想break 的用法就明白了    
*/
public class Demo3 {
	public static void main(String args[]) {
		int x = 0;
		Vector<Integer> v = new Vector<Integer>();  //采用集合
		for (int i = 101; i <= 200; i = i + 2) {   //这里为什么是i+2因为开始数是101加1 是个偶数,所有偶数都能被2整除
			boolean b = true;
			for (int j = 2; j < i / 2; j++) {
				if (i % j == 0) {
					b = false;
					break;
				}
			}
			if (b == true) {
				v.add(i);
				x++;
			}
		}
		System.out.println("100到200中间有 " + x + " 个素数");
		System.out.println("素数为:" + v);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_45760909/article/details/109695818