- package test;
- public class Test3 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- boolean flag;
- int a = 100;
- int count = 0;
- for (int i = 1; i <= a; i++) {
- flag = isPrime(i);
- if (flag) {
- System.out.print(i + "\t");
- count++;
- if (count % 5 == 0)
- System.out.println();
- }
- }
- }
- /*
- * 素数:只能被1和该数本身整除的数
- * 分析:只要不能被整除,也就是使用%运算符得到的结果等于0, 就不是素数
- */
- public static boolean isPrime(int a) {
- /*
- * 算到该数平方根就可以了
- * 为什么是平方根?
- * 假设数 a = m * n 且 m <= n;(m 和 n 就是它的两个解,也就是2个实数根)
- * 则 m * m <= m * n;
- * √m*m <= √m*n;
- * m <= √a ;
- * 所以,只需要求从2到√a之间的所有值就可以了
- */
- //遍历从2至a的平方根的所有数
- for (int i = 2; i <= Math.sqrt(a); i++) {
- //如果有值能够整除a,则不是素数
- if (a % i == 0) {
- return false;
- }
- }
- //如果知道遍历完都没有找到该值,则该数就是素数
- return true;
- }
- }
复制代码 |