public class SuShu { //判断2-100以内的素数,并求和 public static void main(String[] args) { /* * * 从2开始判断即可 * */ byte begin = 2; int sum = 0;//用于统计素数的和 int count = 0; for (; begin < 100; begin++) {//begin已经初始化了就不需要在写了 //判断begin是否是一个素数 //不是静态方法不能直接调用,它是属于一个对象的,匿名对象 new关键字 if (new SuShu().isSuShu(begin)) { sum += begin;//先统计 // System.out.print(begin + " ");//再输出 // 第三种输出;格式化输出 System.out.printf("% 3d",begin); count++;//这里一定要在判断前;先统计再判断 // //8个一行 通过逻辑与运算 // if((count&7)==0){ // count = 0; // System.out.println(); // } //9个一行 通过异或运算 if(((count^9)==0)){ count = 0;//先赋值 System.out.println();//再输出 } } // if(isSuShu(begin)){ // System.out.print(begin+" "); // } } System.out.println("\n2到100之间的素数和是"+sum); } public boolean isSuShu(byte begin) { if (begin < 0) { return false; } if (begin == 1) { return false; } //从2开始直到那个数前一个数,若那个数是2则不进行循环,也就是说这里用while,不能用do while //要用do while 上一个判断加上||begin==2 for (int i = 2; i < begin; i++) { //这里若能被2整除直接结束循环 if (begin % i == 0) { return false; } } //所有的可能都遍历完毕,一定是素数 return true; } } /* * * 比较3个不同的输出,注:输出就是一种流 * printf print println * printf:格式化输出,类似c/c++中的printf * println:在print基础上添加了换行, * print:命令行输出 * * 其它知识点 System类 * System类比较强大; * 1这是一个最终类, * 2java是在命令行中工作的 * 其它方法 * System.getProperty("java.home"); * 获得属性,他没有属性成员变量 * System.getPropertys(); * */
java学习练习Day01 素数
最新推荐文章于 2024-07-27 13:31:57 发布