欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php练习001-->1、求100以内的素数; 2、求前100个素数

程序员文章站 2022-05-11 20:25:48
...

        1、求100以内的素数

<?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/>";
			}	
		}
	}
?>

        运行结果:

                 php练习001-->1、求100以内的素数; 2、求前100个素数

        2、求前100个素数

           基本思路和上一题一样。这里引入了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>

        运行结果:

            php练习001-->1、求100以内的素数; 2、求前100个素数

        欢迎给出修改和改进的意见,谢谢!

转载于:https://my.oschina.net/u/3563169/blog/1550228