PHP--求100以内的质数
for--php求质数
<?php
for($i=1;$i<=100;$i++){
?>
while--php求质数
<?php
$i=0;
while($i<100)
{
}
?>
[PHP入门]求素数
方法一:判断素数的办法是用1到某个数之间的所有数去除这个数,如果能够整除这个数的数超过2个那么这个数就不是素数,反之如果能够整除这个数的数只有1个或者2个,那么他就是素数.
<?php
$n=1000;
echo $n."以内的素数:";
for($m=2;$m<=$n;$m++){ //第一层循环,循环1-$n直接的所有数
$k=0; //计数器初始化
for($i=1;$i<=$m;$i++){ //第二层循环,循环1-$m直接的所有数,$m属于区间【1,$n】
if($m%$i==0){ //取模运算,如果余数为0,K自增1
$k++;
}
}
if($k==2){ //如果k的值等于1或者2,那么是素数,将其输出
echo $m."-";
}
}
?>
$n=1000;
echo $n."以内的素数:";
for($m=2;$m<=$n;$m++){ //第一层循环,循环1-$n直接的所有数
$k=0; //计数器初始化
for($i=1;$i<=$m;$i++){ //第二层循环,循环1-$m直接的所有数,$m属于区间【1,$n】
if($m%$i==0){ //取模运算,如果余数为0,K自增1
$k++;
}
}
if($k==2){ //如果k的值等于1或者2,那么是素数,将其输出
echo $m."-";
}
}
?>
<?php $n = 100; //自定义,一定要设个范围,不然就进入死循环了 $sum = 0; for($i=1; $i <= $n; $i++){ $sum = $sum + $i; if($i==1){ echo $i; }else{ echo "+".$i; } } echo "<br />".$sum; ?>
1. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? <?php $num = 0; for($i=1;$i<=4;$i++) { for($j=1;$j<=4;$j++) { for($k=1;$k<=4;$k++) { if($i != $j && $j != $k && $i != $k) { $num = $num + 1; } } } } echo $num; ?> 2. 有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来,把所有菜果分成5份,但是多了一个,顺手把这个扔给树上的猴了,自己先拿1/5藏了。 没想到其他四人也都是这么想的,都如第一个人一样分成5份把多的那一个扔给了猴,偷走了1/5。 第二天,大家分赃,也是分成5份多一个扔给猴了。最后一人分了一份。问:共有多少苹果? <?php for($i=1; ;$i++) { if($i % 5 == 1) { //第一次 $t = $i - round($i/5) - 1; if($t % 5 == 1) { //第二次 $r = $t - round($t/5) - 1; if($r % 5 == 1) { //第三次 $x = $r - round($r/5) - 1; if($x % 5 == 1) { //第四次 $y = $x - round($x/5) - 1; if($y % 5 == 1) { //第五次 $s = $y - round($y/5) - 1; if($s % 5 == 1) { echo $i; break; } } } } } } } ?> 3.一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…, 如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。 <?php function king($n,$m) { $monkeys = range(1,$n); $i = 0; while(count($monkeys) > 1) { if(($i+1)%$m == 0) { unset($monkeys[$i]); } else { array_push($monkeys,$monkeys[$i]); unset($monkeys[$i]); } $i++; } return current($monkeys); } $king = king($n,$m); print_r($king); ?> 4. 用符号*画一个菱形图案. <?php for($i=0;$i<4;$i++){ for($j=0;$j<3-$i;$j++){ echo ' '; } for($k=0;$k<$i+1;$k++){ echo '* '; } echo "<br/>"; } for($i=3;$i>=0;$i--) { for($x=0;$x<=3-$i;$x++) { echo ' '; } for($y=0;$y<$i;$y++) { echo '* '; } echo '<br/>'; } ?> 5.使用五种以上方式获取一个文件的扩展名. <?php? ① function get_ext1($file_name){ return strrchr($file_name, ‘.’); } 备注: strrchr //找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。 ② function get_ext2($file_name){ return substr($file_name, strrpos($file_name, ‘.’)); } 备注: strrpos //查找字符串在另一个字符串中最后一次出现的位置。 ③ function get_ext3($file_name){ return array_pop(explode(‘.’, $file_name)); } 备注: array_pop //删除数组中的最后一个元素。 ④ function get_ext4($file_name){ $p = pathinfo($file_name); return $p['extension']; } 备注: pathinfo //以数组的形式返回文件路径的信息。 ⑤ function get_ext5($file_name){ return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), ‘.’))); } 备注: strrev //反转字符串 strpos //返回字符串在另一个字符串中第一次出现的位置。 ?> 6.实现斐波那契数列,格式为:1,1,2,3,5,8…即当前数字为前两个数字之和. <?php function feibolaqi($num) { $arr = array(); for($i=0;$i<=$num;$i++) { if($i == 1 || $i == 2) { $arr[$i-1] = 1; } else { $arr[$i-1] = $arr[$i-2] + $arr[$i-3]; } } return $arr; } ?> ************************************************************************************************** <? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = intval(($low+$high)/2 ); if ($array[$mid] == $k){ return $mid; }elseif ( $k < $array[$mid]){ return bin_sch($array, $low, $mid-1, $k); }else{ return bin_sch($array, $mid+ 1, $high, $k); } } return -1; } //顺序查找(数组里查找某个元素) function seq_sch($array, $n, $k){ $array[$n] = $k; for($i=0; $i<$n; $i++){ if( $array[$i]==$k){ break; } } if ($i<$n){ return $i; }else{ return -1; } } //线性表的删除(数组中实现) function delete_array_element($array , $i) { $len = count($array); for ($j= $i; $j<$len; $j ++){ $array[$j] = $array [$j+1]; } array_pop ($array); return $array ; } //冒泡排序(数组排序) function bubble_sort( $array) { $count = count( $array); if ($count <= 0 ) return false; for($i=0 ; $i<$count; $i ++){ for($j=$count-1 ; $j>$i; $j--){ if ($array[$j] < $array [$j-1]){ $tmp = $array[$j]; $array[$j] = $array[ $j-1]; $array [$j-1] = $tmp; } } } return $array; } //快速排序(数组排序) function quick_sort($array ) { if (count($array) <= 1) return $array; $key = $array [0]; $left_arr = array(); $right_arr = array(); for ($i= 1; $i<count($array ); $i++){ if ($array[ $i] <= $key) $left_arr [] = $array[$i]; else $right_arr[] = $array[$i ]; } $left_arr = quick_sort($left_arr ); $right_arr = quick_sort( $right_arr); return array_merge($left_arr , array($key), $right_arr); } //------------------------ // PHP内置字符串函数实现 //------------------------ //字符串长度 function strlen ($str) { if ($str == '' ) return 0; $count = 0; while (1){ if ( $str[$count] != NULL){ $count++; continue; }else{ break; } } return $count; } //截取子串 function substr($str, $start, $length=NULL) { if ($str== '' || $start>strlen($str )) return; if (($length!=NULL) && ( $start>0) && ($length> strlen($str)-$start)) return; if (( $length!=NULL) && ($start< 0) && ($length>strlen($str )+$start)) return; if ($length == NULL) $length = (strlen($str ) - $start); if ($start < 0){ for ($i=(strlen( $str)+$start); $i<(strlen ($str)+$start+$length ); $i++) { $substr .= $str[$i]; } } if ($length > 0){ for ($i= $start; $i<($start+$length ); $i++) { $substr .= $str[$i]; } } if ( $length < 0){ for ($i =$start; $i<(strlen( $str)+$length); $i++) { $substr .= $str[$i ]; } } return $substr; } //字符串翻转 function strrev($str) { if ($str == '') return 0 ; for ($i=(strlen($str)- 1); $i>=0; $i --){ $rev_str .= $str[$i ]; } return $rev_str; } //字符串比较 function strcmp($s1, $s2) { if (strlen($s1) < strlen($s2)) return -1 ; if (strlen($s1) > strlen( $s2)) return 1; for ($i =0; $i<strlen($s1 ); $i++){ if ($s1[ $i] == $s2[$i]){ continue; }else{ return false; } } return 0; } //查找字符串 function strstr($str, $substr) { $m = strlen($str); $n = strlen($substr ); if ($m < $n) return false ; for ($i=0; $i <=($m-$n+1); $i ++){ $sub = substr( $str, $i, $n); if ( strcmp($sub, $substr) == 0) return $i; } return false ; } //字符串替换 function str_replace($substr , $newsubstr, $str) { $m = strlen($str); $n = strlen($substr ); $x = strlen($newsubstr ); if (strchr($str, $substr ) == false) return false; for ( $i=0; $i<=($m- $n+1); $i++){ $i = strchr($str, $substr); $str = str_delete ($str, $i, $n); $str = str_insert($str, $i, $newstr); } return $str ; } //-------------------- // 自实现字符串处理函数 //-------------------- //插入一段字符串 function str_insert($str, $i , $substr) { for($j=0 ; $j<$i; $j ++){ $startstr .= $str[$j ]; } for ($j=$i; $j <strlen($str); $j ++){ $laststr .= $str[$j ]; } $str = ($startstr . $substr . $laststr); return $str ; } //删除一段字符串 function str_delete($str , $i, $j) { for ( $c=0; $c<$i; $c++){ $startstr .= $str [$c]; } for ($c=( $i+$j); $c<strlen ($str); $c++){ $laststr .= $str[$c]; } $str = ($startstr . $laststr ); return $str; } //复制字符串 function strcpy($s1, $s2 ) { if (strlen($s1)==NULL || !isset( $s2)) return; for ($i=0 ; $i<strlen($s1); $i++){ $s2[] = $s1 [$i]; } return $s2; } //连接字符串 function strcat($s1 , $s2) { if (!isset($s1) || !isset( $s2)) return; $newstr = $s1 ; for($i=0; $i <count($s); $i ++){ $newstr .= $st[$i ]; } return $newsstr; } //简单编码函数(与php_decode函数对应) function php_encode($str) { if ( $str=='' && strlen( $str)>128) return false; for( $i=0; $i<strlen ($str); $i++){ $c = ord($str[$i ]); if ($c>31 && $c <107) $c += 20 ; if ($c>106 && $c <127) $c -= 75 ; $word = chr($c ); $s .= $word; } return $s; } //简单解码函数(与php_encode函数对应) function php_decode($str) { if ( $str=='' && strlen($str )>128) return false; for( $i=0; $i<strlen ($str); $i++){ $c = ord($word); if ( $c>106 && $c<127 ) $c = $c-20; if ($c>31 && $c< 107) $c = $c+75 ; $word = chr( $c); $s .= $word ; } return $s; } //简单加密函数(与php_decrypt函数对应) function php_encrypt($str) { $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890'; $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'; if ( strlen($str) == 0) return false; for ($i=0; $i<strlen($str); $i ++){ for ($j=0; $j <strlen($encrypt_key); $j ++){ if ($str[$i] == $encrypt_key [$j]){ $enstr .= $decrypt_key[$j]; break; } } } return $enstr; } //简单解密函数(与php_encrypt函数对应) function php_decrypt($str) { $encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890'; $decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'; if ( strlen($str) == 0) return false; for ($i=0; $i<strlen($str); $i ++){ for ($j=0; $j <strlen($decrypt_key); $j ++){ if ($str[$i] == $decrypt_key [$j]){ $enstr .= $encrypt_key[$j]; break; } } } return $enstr; } ?>