이전 글 "PHP 루프 학습 10: 수선화의 수를 구하고 모든 수선화의 수를 출력하세요"에서는 수선화의 수를 구하고 루프를 이용하여 모든 수선화의 수를 출력하는 방법을 소개했습니다. . PHP 루프를 계속해서 학습하기 위해 숫자가 소수인지 확인하고 1부터 100까지의 소수를 출력하는 방법을 소개합니다. 관심 있는 친구는 그것에 대해 배울 수 있습니다~
먼저 이해합시다무엇입니까? 소수?
소수(소수)는 1과 자기 자신 외에 다른 수로 나누어질 수 없는 자연수를 말하며, 다른 수로 나누어질 수 있으면 합성수라고 합니다(1은 소수도 아닙니다). 합성수도 아닙니다).
예: 숫자 2, 3, 17, 19는 모두 소수이며 1과 자기 자신으로만 나눌 수 있습니다.
숫자 num(예: 17)이 주어지면 이 숫자 num이 소수인지 여부를 어떻게 판단할 수 있나요? 몇 가지 방법을 소개합니다:
방법 1: 가장 간단한 방법은 소수의 정의를 기반으로 구하는 것입니다
생각:
소수는 1과 자기 자신으로만 나누어질 수 있습니다. 즉, 2 Second-rate로만 나눌 수 있습니다.
그래서 우리는 루프를 사용하여 1보다 크고 N보다 작거나 같은 모든 자연수를 사용하여 N을 나누고, 그 숫자가 2보다 크면 나누는 횟수를 세어봅니다. 소수이고, 2와 같으면 소수입니다.
구현 코드를 살펴보겠습니다:
<?php header("content-type:text/html;charset=utf-8"); $num=17; $count = 1; for($i = 2; $i <= $num; $i++) { if(($num % $i)== 0) $count ++; } if($count == 2) { echo $num . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
출력 결과:
방법 2:
아이디어: 숫자를 사용하여 2를 sqrt(이 숫자), 나눌 수 있으면 숫자가 소수가 아니라는 뜻이고, 그렇지 않으면 소수라는 뜻입니다. <code>sqrt(这个数)
,如果能被整除,则表明此数不是素数,反之是素数。
下面来看看实现代码:
<?php header("content-type:text/html;charset=utf-8"); $num=19; $flag = 1; for($i = 2; $i*$i <= $num; $i++) //能被2 - sqrt(i)整除的数 { if($num % $i == 0) { $flag = 0; break; } } if($flag == 1) { echo $num . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
输出结果:
好了知道怎么给定一个数来判断是不是素数了,下面加大难度:怎么给定一个范围(例如1~100),输出全部素数呢?
是不是要使用两个循环,在上面for循环的基础上,在外面套一层for循环来控制范围即可。我们来看看实现代码(直接使用方法2的代码):
<?php header("content-type:text/html;charset=utf-8"); $count = 0; for($k = 2; $k <= 100; $k++){ //从2开始,遍历到100 $flag = 1; for($i = 2; $i*$i <= $k; $i++) {//能被2 - sqrt(i)整除的数 if($k % $i == 0) { $flag = 0; break; } } if($flag == 1) { echo $k . '是素数<br/>'; $count ++; } } echo '<br/>1~100间共有 '.$count." 个素数"; ?>
输出结果:
可以看出,我们在内层for循环的循环体中,使用一个计数器$count
rrreee출력 결과:
이제 숫자가 주어진 소수인지 확인하는 방법을 알았으니 더 어렵게 만들어 보겠습니다. 범위를 지정하는 방법(예: 1 ~100) 그리고 모든 소수를 출력하시겠습니까?
두 개의 루프를 사용해야 할까요? 위의 for 루프를 기반으로 외부에 for 루프를 넣어 범위를 제어하면 됩니다. 구현 코드를 살펴보겠습니다(방법 2의 코드를 직접 사용): 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜내부 for 루프의 루프 본문에 카운터$count
를 사용하고 있음을 알 수 있습니다. , 그리고 각 출력 소수 뒤에는 1씩 증가하므로 1부터 100까지 소수가 몇 개인지 셀 수 있습니다. 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 동영상 튜토리얼🎜🎜🎜🎜추천:🎜"🎜PHP 면접 질문 모음(모음)🎜"🎜위 내용은 PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!