我要哭了,怎么用筛法求1到1000的素数啊,我写了下面的代码,谁可以帮我看看吗,主要是调用方法那里

[复制链接]
查看11 | 回复6 | 2021-1-27 05:06:53 | 显示全部楼层 |阅读模式
packagesushu;
publicclassSushu1{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
int[]data;
data=newint[1000];
System.out.println("1~1000以内的素数如下所示");
InputData(data);
CalcPrimeNum(data);
PrintPrimeNum(data);
}
//定义方法1:输入1~1000的数据(实现数据赋值的方法)
publicstaticvoidInputData(int[]data){
for(inti=0;i -->
回复

使用道具 举报

千问 | 2021-1-27 05:06:53 | 显示全部楼层
弄错了,看这个
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
publicclassSushu1{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
int[]data;
data=newint[1000];
System.out.println("1~1000以内的素数如下所示");
InputData(data);
CalcPrimeNum(data);
PrintPrimeNum(data);
}
//定义方法1:输入1~1000的数据(实现数据赋值的方法)
publicstaticvoidInputData(int[]data){
for(inti=0;i
回复

使用道具 举报

千问 | 2021-1-27 05:06:53 | 显示全部楼层
两个for循环就可以搞定
第一个for遍历1-1000
第二个for遍历1到当前这个数:如果能被其它整除,就跳出,如果遍历完了还不能整除,就是素数,放入数组
回复

使用道具 举报

千问 | 2021-1-27 05:06:53 | 显示全部楼层
引用1楼暂未名的回复:弄错了,看这个
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

publicstaticvoidCalcPrimeNum(int[]data){
inti,j;
data[0]=0;
for(i=2;i
回复

使用道具 举报

千问 | 2021-1-27 05:06:53 | 显示全部楼层
双层for循环搞定
回复

使用道具 举报

千问 | 2021-1-27 05:06:53 | 显示全部楼层
引用3楼KeepSayingNo的回复:两个for循环就可以搞定
第一个for遍历1-1000
第二个for遍历1到当前这个数:如果能被其它整除,就跳出,如果遍历完了还不能整除,就是素数,放入数组

public static void CalcPrimeNum(int[] data) {
int i,j,temp;
data[0]=0;
for(i=1;i引用6楼暂未名的回复:Quote: 引用3楼KeepSayingNo的回复:两个for循环就可以搞定
第一个for遍历1-1000
第二个for遍历1到当前这个数:如果能被其它整除,就跳出,如果遍历完了还不能整除,就是素数,放入数组

public static void CalcPrimeNum(int[] data) {
int i,j,temp;
data[0]=0;
for(i=1;i

你这个问题明显,不应该是data=0,应该是data[j]=0,先把筛选法搞清楚。

回复

使用道具 举报

千问 | 2021-1-27 05:06:53 | 显示全部楼层
引用6楼暂未名的回复:Quote: 引用3楼KeepSayingNo的回复:两个for循环就可以搞定
第一个for遍历1-1000
第二个for遍历1到当前这个数:如果能被其它整除,就跳出,如果遍历完了还不能整除,就是素数,放入数组

public static void CalcPrimeNum(int[] data) {
int i,j,temp;
data[0]=0;
for(i=1;i
你把data=0了,还用它当除数,能不异常吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行