7 回答

TA貢獻(xiàn)564條經(jīng)驗 獲得超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個素數(shù):"); for?(int?i?=?0;?i?<?n.length;?i++)?{ System.out.println(n[i]); }

TA貢獻(xiàn)1123條經(jīng)驗 獲得超629個贊
錯得太多了,邏輯慘不忍睹。
建議你分幾步走,首先寫判斷某個數(shù)是不是素數(shù),然后再考慮怎么輸出前100個素數(shù)的問題

TA貢獻(xiàn)1條經(jīng)驗 獲得超1個贊
package sushu;
public class sushu {
public static void main(String[] args)
{
System.out.println("前一百個素數(shù)是:");
//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+"不是素數(shù)");
p=0;
}
else
System.out.println(k+"是素數(shù)");
}
}
}

TA貢獻(xiàn)4條經(jīng)驗 獲得超3個贊
你的邏輯有點錯誤,根據(jù)你的計算思路,我自己寫了一個;;;;
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++;
?
}
}
}
控制臺輸出結(jié)果如下:
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貢獻(xiàn)2條經(jīng)驗 獲得超0個贊
p++ p的值一直不變,你不就一直判斷的是3了。。。。
另外你的代碼最好改改
import?java.util.Arrays; public?class?primeNum?{ public?static?void?main(String[]?args)?{ System.out.println("前一百個素數(shù)是:"); int[]?arr=new?int[100]; int?i=2;//要判斷的數(shù) int?k=0;//下標(biāo) 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; } }
添加回答
舉報