内存:128  时间:0

题目描述

输入一个整数n,求n以内的素数,每十个一行,采取尽可能优的算法。

输入

n

输出

n以内的素数

样例输入

100

样例输出

2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97

提示

代码如下

import java.util.*;
import java.text.DecimalFormat;
public class Main
{
    public static void main(String args[]) throws Exception
    {   
        DecimalFormat df = new DecimalFormat("0000000");
        Scanner cin = new Scanner(System.in);
        int num = cin.nextInt();
        int i,mark;
        for(i=2,mark=0;i<num;i++){
            if(isPrime(i)){
                mark++;
                System.out.printf("%5d",i);
            }
            if(mark%10 == 0)
                System.out.println();
        }
    }  
    public static boolean isPrime(int a) {
 
        boolean flag = true;
 
        if (a < 2) {// 素数不小于2
            return false;
        } else {
 
            for (int i = 2; i <= Math.sqrt(a); i++) {
 
                if (a % i == 0) {// 若能被整除,则说明不是素数,返回false
 
                    flag = false;
                    break;// 跳出循环
                }
            }
        }
        return flag;
    }
}

代码来源于互联网,仅供参考!