>  기사  >  백엔드 개발  >  PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법

PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법

青灯夜游
青灯夜游원래의
2021-08-23 12:00:534047검색

이전 글 "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 . &#39;就是素数<br/>&#39;;
}else{
	echo $num . &#39;不是素数<br/>&#39;;
}
?>

출력 결과:

PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법

방법 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 . &#39;就是素数<br/>&#39;;
}else{
	echo $num . &#39;不是素数<br/>&#39;;
}
?>

输出结果:

PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법

好了知道怎么给定一个数来判断是不是素数了,下面加大难度:怎么给定一个范围(例如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 . &#39;是素数<br/>&#39;;
		$count ++;
	}
}
echo &#39;<br/>1~100间共有 &#39;.$count." 个素数";
?>

输出结果:

PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법

可以看出,我们在内层for循环的循环体中,使用一个计数器$count

구현 코드를 살펴보겠습니다:

rrreee출력 결과:

PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법

이제 숫자가 주어진 소수인지 확인하는 방법을 알았으니 더 어렵게 만들어 보겠습니다. 범위를 지정하는 방법(예: 1 ~100) 그리고 모든 소수를 출력하시겠습니까?

두 개의 루프를 사용해야 할까요? 위의 for 루프를 기반으로 외부에 for 루프를 넣어 범위를 제어하면 됩니다. 구현 코드를 살펴보겠습니다(방법 2의 코드를 직접 사용): 🎜rrreee🎜출력 결과: 🎜🎜PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법🎜🎜내부 for 루프의 루프 본문에 카운터 $count를 사용하고 있음을 알 수 있습니다. , 그리고 각 출력 소수 뒤에는 1씩 증가하므로 1부터 100까지 소수가 몇 개인지 셀 수 있습니다. 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 동영상 튜토리얼🎜🎜🎜🎜추천:🎜"🎜PHP 면접 질문 모음(모음)🎜"🎜

위 내용은 PHP 루프 학습 11: 소수를 결정하는 방법, 1부터 100까지 소수를 출력하고 그 수를 세는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.