悬赏提问下,Java打印100以内的素数,要求5个一个换行,怎么实现?
/**
public class Test {
public static boolean primeNumber(int i) {
boolean b = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
b = false;
break;
}
}
return b;
}
public static void main(String[] args) {
int n = 0; //五个计数
for (int i = 2; i <= 100; i++) {
if (primeNumber(i)) {
n++;
System.out.print(i + " ");
if (n == 5) {
n = 0;
System.out.println();
}
}
}
}
}
public class Test {
public static void main(String[] args) {
int i, count = 0;
for(i=2; i<=100; i++){
if(isPrimeNumber(i) == true){
count++;
System.out.printf("%6d", i);
if(count%5 == 0)
System.out.println();
}
}
}
//判断一个数是否是素数,若是,返回true,否则返回false
public static boolean isPrimeNumber(int num){
int k = (int) Math.sqrt(num);
if(num == 2)
return true;
for(int i=2; i<=k; i++)
if(num%i == 0)
return false;
return true;
}
}
public class Demo {
public static void main(String[] args){
//判断换行使用
int k=0;
//定义for循环取1到100的所有整数
for(int i = 1;i<101;i++){
//统计整数被整除的次数
int count =0;
//定义内部for循环,用于作为除数
for(int j=1;j<i+1;j++){
if(i%j==0)
count++;
}
//由于素数只能被自己和1整除,所以素数被整除的次数是2,如果整数次数是2,进入if语句执行打印操作
if(count==2){
k++;
//判断k能否被5整除,能整除则执行换行打印
if(k%5==0) {
System.out.println(i);
}else {
System.out.print(i+"\t");
}
}
}
}
}
首先肯定是一个0-100的for循环,,在循环中间定义一个用来计数的变量(count) ,然后用
if(满足素数条件)
{
//打印这个素数,并且计数
System.out.print(i);
count++
}
//满足五个
if(count % 5){
//打印一个换行
System.out.println();
}
刚开始写程序的话,建议一步一步按照逻辑去写,不要简化过程,这样既能快速写出程序,又可以得到锻炼。慢慢的写的多了,自然而然的就会简写了