7 回答
TA贡献564条经验 获得超863个赞
int count = 0; int fg = 1; int[] n=new int[100]; for (int x = 2; count < 100; x++) { double k = Math.sqrt(x + 1); for (int i = 2; i <= k; i++) { if ((x % i) == 0) { fg = 0; break; } } if (fg == 1) { n[count] = x; count++; } fg = 1; } System.out.println("前100个素数:"); for (int i = 0; i < n.length; i++) { System.out.println(n[i]); }
TA贡献1条经验 获得超1个赞
package sushu;
public class sushu {
public static void main(String[] args)
{
System.out.println("前一百个素数是:");
//int n[]=new int[100];
int p=0 ;
int cn,k;
for(k=1;k<=100;k++)
{
for(cn=1;cn<k;cn++)
{
if (k%cn == 0 && cn<k && cn > 1)
{
p++;
break;
}
}
if (p!=0)
{
System.out.println(k+"不是素数");
p=0;
}
else
System.out.println(k+"是素数");
}
}
}
TA贡献4条经验 获得超3个赞
你的逻辑有点错误,根据你的计算思路,我自己写了一个;;;;
public class demo01 {
public static void main(String[] args) {
int num=3;
int numcalled=0;
System.out.print(2+"\t");
for(numcalled=0;numcalled<99;){
boolean flag=false;
for(int j=2;j<num;){
if(num%j==0){
flag=false;
break;
}else{
flag=true;
j++;
}
}
if(flag==true){
numcalled++;
if(numcalled%10==0){
System.out.println();
}
System.out.print(num+"\t");
}
num++;
}
}
}
控制台输出结果如下:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349
353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463
467 479 487 491 499 503 509 521 523 541
TA贡献2条经验 获得超0个赞
p++ p的值一直不变,你不就一直判断的是3了。。。。
另外你的代码最好改改
import java.util.Arrays; public class primeNum { public static void main(String[] args) { System.out.println("前一百个素数是:"); int[] arr=new int[100]; int i=2;//要判断的数 int k=0;//下标 while (true) { if(k>=100){ break; } if(isPrime(i)){ arr[k++]=i; } i++; } System.out.println(Arrays.toString(arr)); } public static boolean isPrime(int num){ boolean result=true; for(int i=2;i<num;i++){ if(num%i==0){ return false; } } return result; } }
添加回答
举报