一、求100之內的素數php
<?php header("content-type: text/html;charset=utf-8");//使得php動態輸出內容支持漢字,這裏header建議放在第一行。 ?> <?php echo "第一題:求100之內的素數"; echo "<br/>"; $n=100;//100之內 $m=0;//記錄質數的個數 for($i=2;$i<=$n;$i++){//循環遍歷2到n(這裏n的值是100) $flag=true;//每一個數先假設是質數 for($j=2;$j<=sqrt($i);$j++){//從2開始,到√i(i開根號),開始找約數(找到約數就不是質數,找不到就是質數) if($i%$j==0){//若是 i能被j整除,說明i不是質數 $flag=false;//不是質數,將flag標記爲false break;//跳出找約數的該層循環(j循環) } } if($flag){//若是flag=true,說明是質數, $m++;//質數個數+1 echo $i," ";//輸出該數,用空格分開 if($m%5==0){//每行顯示五個 echo "<br/>"; } } } ?>
運行結果:css
二、求前100個素數html
基本思路和上一題同樣。這裏引入了bootstrap的表格樣式,美化頁面bootstrap
<?php header("content-type: text/html;charset=utf-8"); ?> <link href="bootstrap.min.css" rel="stylesheet"> <body> <table class="table table-condensed table-bordered" style="width:700px;text-align:center;"> <?php echo "第二題:求前100個素數"; echo "<br/>"; $n=0;//記錄質數的個數 $m=2;//第一個質數從二開始, while ($n<100){//質數的個數小於100 $flag=true; for($i=2;$i<=sqrt($m);$i++){//判斷m是不是質數 if($m%$i==0){ $flag=false; break; } } if($flag){ //若是是質數 $n++;//質數個數+1 if($n%10==1){//每行的第一個數在輸出是要加<tr> if(floor($n/10)%2==1)//控制奇偶行的顏色 echo "<tr class='info'><td>".$m."</td>"; else echo "<tr class='danger'><td>".$m."</td>"; }else if($n%10==0){//每行的最後一個數在輸出是要加</ tr> echo "<td>".$m."</td></tr>"; }else{//每行中間的數直接輸出<td> </td> echo "<td>".$m."</td>"; } } $m++; } ?> </table> </body>
運行結果:code
歡迎給出修改和改進的意見,謝謝!htm