题目描述
本题要求编写程序,求解整数N(2<=N<=100)以内的全部素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格)
注意:不要打表!
输入
输入在第一行中给出非负整数N(2<=N<=100)。
输出
将小于等于N的素数从小到大排列,素数之间以一个空格区分(注意,最后一个数字之后不能有空格)
样例输入
10
样例输出
2 3 5 7
思路:
这个题目以前学C语言写作业遇到过,用到循环。这题的难点是空格而且最后一个数字之后不能有空格,一开始我想用删除最后一个字节,但是我太菜了不会从网上找代码粘上去还出错,于是用了个投机的办法
import java.util.Scanner;
public class 求解素数集合 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n;
n=in.nextInt();
int i, j;
int k=0;
//用循环判断素数
for (i = 2; i <= n; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0)
break;
}
if (j >= i) {
k++;
if(k>1) {
System.out.print(" ");
}
//这里if后要加花括号,用于添加空格,不加会导致后面的i跟着k走而输出错误
System.out.print(i);
}
}
}
}
这个空格是个投机取巧的办法(我个人感觉不太正规),如果大家有什么别的办法欢迎来交流