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/>";
}
}
}
?>
运行结果:
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>
运行结果:
欢迎给出修改和改进的意见,谢谢!
转载于:https://my.oschina.net/u/3563169/blog/1550228
上一篇: 用筛选法求100以内的素数
下一篇: 第三章 求100以内的素数