Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembelajaran gelung PHP lapan: kira bilangan nombor sempurna dari 1 hingga 10,000, dan keluarkan semua nombor sempurna

Pembelajaran gelung PHP lapan: kira bilangan nombor sempurna dari 1 hingga 10,000, dan keluarkan semua nombor sempurna

青灯夜游
青灯夜游asal
2021-08-13 14:49:056346semak imbas

Dalam artikel sebelumnya "Pembelajaran Gelung PHP 7: Dua Kaedah Mencetak Jadual Pengiraan Pantas 9*9", kami memperkenalkan cara menggunakan gelung dan gelung sambil untuk mencetak jadual darab 99. Mari kita teruskan memahami gelung PHP dan memperkenalkan kaedah menilai sama ada nombor yang diberikan adalah nombor yang lengkap. Rakan-rakan yang berminat boleh mempelajarinya~

Pertama sekali, mari kita fahamiApakah nombor yang sempurna?

Nombor sempurna Nama penuh ialah Nombor sempurna (Nombor sempurna) Jika suatu nombor betul-betul sama dengan jumlah faktornya, maka nombor itu dipanggil nombor "perfect number". (Faktor merujuk kepada pembahagi selain daripada dirinya sendiri.)

Contohnya: 6=1 2 3, 6 ialah nombor sempurna.

Jadi jika nombor nombor (contohnya, 6) diberikan, bagaimana kita menilai sama ada nombor nombor itu lengkap?

Idea:

1 Uraikan nombor nombor kepada faktor, iaitu cari semua nombor yang boleh membahagi nombor kecuali dirinya. (Ini memerlukan penggunaan gelung).

Mari kita ambil gelung for sebagai contoh Kerana 1 boleh membahagikan sebarang integer, keadaan awal gelung ditetapkan i=1 dan pembahagi tidak boleh nombor itu sendiri, jadi syarat sekatan ialah i

$num=6;
for($i=1;$i<$num;$i++){
    if($num%$i==0){//分解因数
        
    }
}

2. Selepas mencari faktor, anda perlu menambah faktor ini dan menjumlahkannya. Ini memerlukan pembolehubah $sum untuk menerima hasil pengiraan Kerana ia adalah penambahan, $sum boleh diberikan nilai 0 pada mulanya.

$num=6;
$sum=0;
for($i=1;$i<$num;$i++){
    if($num%$i==0){//分解因数
        $sum=$sum+$i;  //各因数相加,求和
    }
}

3 Tentukan sama ada $sum dan $num adalah sama, $num ialah nombor sempurna.

Kod pelaksanaan diberikan di bawah:

Lihat output:

Pembelajaran gelung PHP lapan: kira bilangan nombor sempurna dari 1 hingga 10,000, dan keluarkan semua nombor sempurna

Sekarang anda tahu caranya untuk menilai a Untuk melihat sama ada nombor itu lengkap, tingkatkan kesukaran di bawah: Output semua nombor sempurna dalam julat tertentu (hanya 1~10000).

Analisis: Terdapat julat 1~10000, kemudian kami menggunakan gelung for untuk mengehadkan julat, supaya gelung for ditetapkan di luar kod di atas:

<?php
header("Content-type:text/html;charset=utf-8");
for($a=1;$a<=10000;$a++){
	$sum=0;
	for($i=1;$i<$a;$i++){
	    if($a%$i==0){//分解因数
	        $sum=$sum+$i;  //各因数相加,求和
	    }
	}
	if($sum==$i){//如果这个数等于本身 则为完数
	echo "$i 是完数!<br>";
	}
}	
?>

Lihat output:

Pembelajaran gelung PHP lapan: kira bilangan nombor sempurna dari 1 hingga 10,000, dan keluarkan semua nombor sempurna

Bagaimana jika terdapat banyak julat yang diberikan dan anda ingin tahu berapa banyak nombor lengkap yang ada? Anda boleh menambah pembilang $b pada pernyataan if Setiap kali nombor lengkap dikeluarkan, $b akan meningkat sebanyak 1.

<?php
header("Content-type:text/html;charset=utf-8");
$b=0;
for($a=1;$a<=10000;$a++){
	$sum=0;
	for($i=1;$i<$a;$i++){
	    if($a%$i==0){//分解因数
	        $sum=$sum+$i;  //各因数相加,求和
	    }
	}
	if($sum==$i){//如果这个数等于本身 则为完数
	echo "$i 是完数!<br>";
	$b++;
	}
}
echo "<br>1~10000范围内有:$b 个完数。";
?>

Lihat output:

Pembelajaran gelung PHP lapan: kira bilangan nombor sempurna dari 1 hingga 10,000, dan keluarkan semua nombor sempurna

OK, selesai! Semua nombor sempurna antara 1 dan 10,000 adalah output, dan bilangan nombor sempurna dikira.

Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →tutorial video php

Disyorkan: Koleksi soalan temuduga PHP (koleksi)

Atas ialah kandungan terperinci Pembelajaran gelung PHP lapan: kira bilangan nombor sempurna dari 1 hingga 10,000, dan keluarkan semua nombor sempurna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn