58,454
社区成员
发帖
与我相关
我的任务
分享
public class Sushu1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] data;
data = new int[1000];
System.out.println("1~1000以内的素数如下所示");
InputData(data);
CalcPrimeNum(data);
PrintPrimeNum(data);
}
//定义方法1:输入1~1000的数据(实现数据赋值的方法)
public static void InputData(int[] data) {
for (int i = 0; i < data.length; i++) {
data[i] = 1;
}
}
//定义方法2:去掉输入数据里所有的非素数
public static void CalcPrimeNum(int[] data) {
int i, j;
data[0] = 0;
data[1] = 0;
int toplimit = (int) (Math.sqrt(data.length) + 0.5);
for (i = 1; i < toplimit; i++) {
if (data[i] != 0) {
for (j = 2; j < data.length / i + 1; j++) {
if (i * j < data.length) {
data[i * j] = 0;
}
}
}
}
}
// 定义方法3:实现一行打印10个素数的格式打印所有的素数
public static void PrintPrimeNum(int[] data) {
int items = 0;
for (int i = 0; i < data.length; i++) {
if (data[i] != 0) {
System.out.printf("%5d", i);
items++;
if (items % 10 == 0)
System.out.println();
}
}
}
}
public static void CalcPrimeNum(int[] data) {
int i, j;
data[0] = 0;
for (i = 2; i <=1000; i++) {
if(data[i-1]!=0) {
for (j =2; j <=1000/i; j++) {
if(data[i*j-1]!=0) {
data[i*j-1]=0;
}
}
}
}
}