求出100以内的所有素数--筛选法和根号法

来源:互联网 发布:数据库的触发器怎么写 编辑:程序博客网 时间:2024/05/22 17:19
/** * 筛选法求出100以内的所有素数,即从小到大筛去一个已知素数的所有倍数 *  * 素数:只能被1和本身整除 *  * 根号法:素数不能被2~sqrt(n)整除 */package t;import java.util.*;import java.math.*;public class Test7_3 {public static void main(String[] args) throws Exception{// TODO Auto-generated method stub//int a[101];  errorint[] a = new int[101];int i, j;//1-100中找素数for(i=1; i<101; i++){a[i] = 1;}//从已知素数2开始,考察4 6 8 ----;然后3、5、7for(i=2; i<101; i++){if(a[i] != 0){for(j=i+i; j<101;){if(j%i == 0){a[j]=0;j = j+i;//检查一个已知素数的所有倍数}}}}//素数最小是2。  0、1都不是for(i=2; i<101; i++){if(a[i] != 0){System.out.println(i);}}System.out.println("-----------------------------");sqrtfind(100);}public static void sqrtfind(int n){int i=0;//素数最小是2。  0、1都不是for(i=2; i<=n; i++){int k = (int)Math.sqrt(i);//i 是否能被整除int j = 0;for(j=2; j<=k; j++){if(i%j == 0){//不是素数break;}}if(j>k){//不能被整除--没有breakSystem.out.println(i);}}}}

原创粉丝点击