你的算法有问题。另外 for(i=0;i<=99;i++) if(a[i]!=0) System.out.println( a[i] );中的 i 没有定义。
刚才发错了,重发 public class sushu { public static void main(String[] args) { int a[100]; for(int i=0;i<=99;i++){ a[i]=i+1; } for(int i=1;i<=49;i++){ for(int j=i+1;j<100;j++){ if(a[i==0||a[j==0]) continue; if(a[j]%a[i]==0) a[j]=0; } } for(i=0;i<=99;i++) if(a[i]!=0) System.out.println( a[i] ); } }
可以运行的程序: public class Test { public static void main(String[] args) { int a[] = new int[100]; for (int i = 0; i <100; i++) { a[i] = i + 1; } for (int i = 1; i <50; i++) { for (int j = i + 1; j < 100; j++) { if(a[i]==0||a[j]==0) continue; if(a[j]%a[i]==0) a[j]=0; } } for (int i = 0; i <= 99; i++) if (a[i] != 0) System.out.println(a[i]); } }结果是正确的,已经验证过了。
for(i=0;i<=99;i++)
if(a[i]!=0)
System.out.println( a[i] );中的 i 没有定义。
public class sushu {
public static void main(String[] args) {
int a[100];
for(int i=0;i<=99;i++){
a[i]=i+1;
}
for(int i=1;i<=49;i++){
for(int j=i+1;j<100;j++){
if(a[i==0||a[j==0])
continue;
if(a[j]%a[i]==0)
a[j]=0;
}
}
for(i=0;i<=99;i++)
if(a[i]!=0)
System.out.println( a[i] ); }
}
public class Test { public static void main(String[] args) {
int a[] = new int[100];
for (int i = 0; i <100; i++) {
a[i] = i + 1;
}
for (int i = 1; i <50; i++) {
for (int j = i + 1; j < 100; j++) {
if(a[i]==0||a[j]==0)
continue;
if(a[j]%a[i]==0)
a[j]=0; }
}
for (int i = 0; i <= 99; i++)
if (a[i] != 0)
System.out.println(a[i]);
}
}结果是正确的,已经验证过了。
public class sushu {
public static void main(String[] args) {
int[] a=new int[100];
for(int i=0;i<=99;i++){
a[i]=i+1;
}
for(int i=1;i<=49;i++){
for(int j=i+1;j<100;j++){
if(a[i]==0||a[j]==0)
continue;
if(a[j]%a[i]==0)
a[j]=0;
}
}
for(int i=0;i<=99;i++)
if(a[i]!=0)
System.out.println( a[i] ); }
}