public class Spec{
public static void main(String[] args){
su(100);}public static void su(int n){
int i=1,num=2,;
while(i<=n){
int a=1;
//for循环结束以后重置a值
for(int j=1;j<=num/2;j++){
a=a*(num%j);
//利用a值不为0判断是否为素数
}
if(a!=0){
i++;
System.out.print(num+" ");}num++;}
}}这个程序检查不出来错误,到运行的时候没有结果,求各位大佬指点
public static void main(String[] args){
su(100);}public static void su(int n){
int i=1,num=2,;
while(i<=n){
int a=1;
//for循环结束以后重置a值
for(int j=1;j<=num/2;j++){
a=a*(num%j);
//利用a值不为0判断是否为素数
}
if(a!=0){
i++;
System.out.print(num+" ");}num++;}
}}这个程序检查不出来错误,到运行的时候没有结果,求各位大佬指点
a=a*(num%j);
//利用a值不为0判断是否为素数
}你这里又不是只循环一次,总有不是素数的,所以a怎么都等于0重置a 和判断都要放for 循环内
public static void main(String[] args) {
su2(100);
}
public static void su2(int cot){
int num = 2, i, total = cot + 1;
while(cot != 0){
for(i = 2; i < num; i++)
if(num % i == 0 || i > num / 2)
break;
if(i > num / 2)
System.out.println("第" + (total - cot--) + "个 : " + num);
num++;
}
}
public static void main(String[] args) {
su(100);
} public static void su(int n) {
int i = 1, num = 2;
while (i <= n) {
int a = 1;
//for循环结束以后重置a值
for (int j = 2; j <= num / 2; j++) {
a = a * (num % j);
//利用a值不为0判断是否为素数
}
if (a != 0) {
i++;
System.out.print(num + " ");
}
num++;
}
}
}改好的代码