需要一个java编写得程序,要输出任何一个数得范围内得所有质数,而且,每一步还要带有详细注释,有高

需要一个java编写得程序,要输出任何一个数得范围内得所有质数,而且,每一步还要带有详细注释,有高分,加分得。速度,坐等答案。

public static void main(String[] args) {
// TODO Auto-generated method stub
zhishu(10,40);
}

public static void zhishu(int num1,int num2){//定义一个获取两个数中间所有质数的方法
int[] count = null;//定义一个数组容器用来装所有的质数
int n=0;//计数器,用来计算有多少个质数
if (num1 > num2) {//判断,看看输入的数哪个大
count = new int[num1 - num2];//定义数组长度
for (int j = num2; j <= num1; j++) {//循环从小数到大数中间的数挨个判断
for (int i = 2; i < j; i++) {//从2到要判断的数本身的前一个数
if (j % i == 0) {//让要判断的数去跟从2到他本身的每一个数取余数
break; //如果能除尽说明不是质数,结束本循环
} else if (i == j - 1) {//如果到他本身的下一位数都没有能除尽的说明是质数
count[n++] = j;//记录下来
}
}
}
System.out.print("两个数中间的质数有:");
for (int i = 0; i < n; i++) { //建立循环打印所有质数
System.out.print(count[i]+"\t");
}
}else{
count = new int[num2 - num1];//同上,只是输入的是前一个数比后一个数大的情况
for (int j = num1; j <= num2; j++) {
for (int i = 2; i < j; i++) {
if (j % i == 0) {
break;
} else if (i == j - 1) {
count[n++] = j;
}
}
}
System.out.print("两个数中间的质数有:");
for (int i = 0; i <n; i++) {
System.out.print(count[i]+"\t");
}
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-06
import java.util.Scanner;

public class Test {
/**
* 质数的概念:指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数(不包括0)整除的数。
* 那么如果该整数从2到number-1被整除,余数都不为0 ,证明为质数,否则不是质数
* @param number
* @return ture - 质数 false - 不是质数
*/
public boolean isZhishu(int number) {
boolean flag = true; //初始为ture
int max = number - 1;
for (int i = 2; i <= max; i++) {
if (number % i == 0){
flag = false;
break;
}
return flag;
}

public static void main(String[] args) {
Test t = new Test();
String result = "";//result字符串来保存质数结果
//输入一个整数
Scanner ss = new Scanner(System.in);
System.out.println("请输入一个数:");
int number = ss.nextInt();
//遍历整数内所有正整数并判断是否为质数,如果是的话加入到result结果集中
for (int i = 2; i <= number; i++) {
if (t.isZhishu(i))result = result + i + ",";
}
//输出结果
System.out.println(number + "内所有质数包括:"+ result.substring(0, result.length() - 1));
}
}本回答被网友采纳
第2个回答  2014-03-06

package com.javacodegeeks.snippets.basics;

public class GeneratePrimeNumbersWithForLoop {

public static void main(String[] args) {

int max = 100;

System.out.println("Generate Prime numbers between 1 and " + max);

// loop through the numbers one by one
for (int i = 1; i<max; i++) {

boolean isPrimeNumber = true;

// check to see if the number is prime
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrimeNumber = false;
break; // exit the inner for loop
}
}

// print the number if prime
if (isPrimeNumber) {
System.out.print(i + " ");
}
}

}

}

 

相似回答