package com.test;
import java.math.*;
import java.util.Scanner;public class test222 {
/**
* @param args * 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 * * 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除(i%/2==0), * * 则表明此数不是素数,反之是素数。* 注: 一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数称之为素数。否则称之为合数。
*/ public static void main(String[] args) { // TODO Auto-generated method stubSystem.out.println(Math.sqrt(9));; for(int ii=0;ii<=1;ii++){ int i = 0; Scanner sc = new Scanner(System.in); int sa = sc.nextInt();// for (i = 2; i <= 10; i++) if (iszhishu(sa) == true) System.out.println("'"+sa+"' is a zhishu"); else{ System.out.println("sa: '"+sa+"' is not a zhishu"); } if(sa!=0){ ii=0; }else{ System.out.println("---end---"); } } } public static boolean iszhishu(int x) { for (int i = 2; i <= x / 2; i++) if (x % 2 == 0) return false; return true; } /*X: 1 2 3 4 5 2<=1/2 2<=2/2=1 2<=3/2 2<=4/2=2,4%2=2...0; 2<=5/2;i=3<=5/2; return true true true false true 6 7 8 2<=6/2=3;6%2=3...0; 2<=7/2;7%2=3...1;i=3<=7/2;i=4<=7/2; 2<=8/2;8%2=4...0 return false true false 9 10 2<=9/2;9&2=4...1;i=3<=9/2;i=4<=9/2;i=5<=9/2; 2<=10/2=5;10%2=5...0 return true false 规律总结: x%2==0 可以判断是不是整除2,感觉这样就可以判断是不是质素了,外面加个循环除以2,是为什么呢?不清楚,不过这样可以判断是否是素数,数据测试也是对的; 程序没问题,就是看不懂/xk; 有的人有写直接Math.sqrt()(//判断指定数的平方根内的数)判断; */ }