php練習001-->一、求100之內的素數; 二、求前100個素數

        一、求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

相關文章
相關標籤/搜索