Yun_ZH 2021-10-23 20:16 采纳率: 75%
浏览 11
已结题

求素数,可以正常运行,但是结果错误(会输出1-1000),想问下是哪里错了怎么改呢?


package sushu;

public class changs {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int data[];
        //生成数组
        data=new int[1000];
        //1)调用初始化(静态方法直接调用)
                DataInput(data);
                //2)筛选素数
                ProcessPrime(data);
                //3)打印素数
                PrintPrime(data);        

    }
    //数据初始化的静态方法
     static void DataInput(int data[]) 
     {
            for(int i=0;i<data.length;i++)
            {data[i]=i+1;}
        }
     
     //筛选素数
     static void ProcessPrime(int data[]) {
         int i,j,temp;
            for(i=1;i<data.length;i++) {
                if(data[i]==0) {
                    for(j=i+1;j<data.length;j++) {
                        if(data[j]!=0) {
                            temp=data[j]%data[i];
                            if(temp==0) 
                            {data[j]=0;}
                        }
                    }
                }
            }
}

     //完成素数打印
    static void PrintPrime(int data[]) {
        int i;
        for(i=0;i<data.length;i++) {
            if(data[i]!=0) {
                System.out.println("素数:"+data[i]);

                }
                }
            }
        }
        
        }
    

我想求1-1000的素数,但是最后输出结果是1-1000,怎么改呢?

  • 写回答

2条回答 默认 最新

  • Yun_ZH 2021-10-23 20:21
    关注

    我知道了,我有一行代码写错了;改完以后答案就正确了,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月31日
  • 已采纳回答 10月23日
  • 创建了问题 10月23日