java 求在输入的整数范围内素数 请大侠帮我指出错误。

来源:百度知道 编辑:UC知道 时间:2024/06/21 07:24:06
下边是我的代码 在输入数>=11时出错
import java.util.Scanner;
public class Text5 {
int x;int[] array;
Text5(){
Scanner reader=new Scanner(System.in);
x=reader.nextInt();
}
void output(){
System.out.println("请出入整数");
if(x<=2){
if(x==2)
System.out.println("2");
else
System.out.println("Error");
}
for(int m=2;m<=x;m++) {
for(int n=2;n<=Math.sqrt(m);n++ ){
if(m%n==0)
break;
System.out.println(m);
}
}
}
public static void main(String[] args){
Text5 num=new Text5();
num.output();
}
}

class Text5 {
int x=43;
int[] array;

Text5(){
Scanner reader=new Scanner(System.in);
x=reader.nextInt();
array=new int[x]; //耕根据输入的数字初始化数组大小,保存素数
}

public void output(){
int temp=0;
int arr=0;
int n=0;
System.out.println("请出入整数");
if(x<=2){
if(x==2)
System.out.println("2");
else
System.out.println("Error");
}
for(int m=2;m<=x;m++) { //以下是求素数
temp=(int)Math.sqrt(m);
for(n=2;n<=temp;n++ ){
if(m%n==0) break;
}
if(n>temp) {array[arr]=m;arr++;} //保存素数到数组
}
}

public void PrintArray()
{
for(int i=0;i<array.length;i++)
{
if(array[i]>1)
System.out.print(" "+array[i]+" ");
}
}
public static void main(String[] args){
Text5 num=new Text5();
num.output();
num.PrintArray();
}