Heim  >  Artikel  >  Backend-Entwicklung  >  用一个函数获取质数的不解

用一个函数获取质数的不解

WBOY
WBOYOriginal
2016-06-13 11:54:16730Durchsuche

用一个函数获取质数的疑惑

<br />// 获取100—200之间的素数<br />function main()<br />{<br />	for($i=100; $i<201; $i++){<br />		$b = false;<br />		for($j=2; $j<$i-1; $j++){<br />			$k = $i % $j;<br />			if($k == 0){<br />				$b = true;<br />				//break;<br />			}<br />		}<br />		if(!$b){<br />			echo $i ."<br>";<br />		}<br />	}<br />}<br /><br />// 我的疑虑在break那个地方,测试最后的结果,有没有break,都是一样的结果。<br />// 但如果要用程序来解释数学定义,就得加上break对吧?<br />

------解决方案--------------------
有没有 break 都不会影响打印的结果,因为打印的条件是 $i 素数
但是对于运行效率而言,没有 break 时需比较完全部数据后($i-1)才结束,而有 break 时则在发现第一个合数时就结束了,其后的无效劳动也就不必再做了
------解决方案--------------------

引用:
有没有 break 都不会影响打印的结果,因为打印的条件是 $i 素数
但是对于运行效率而言,没有 break 时需比较完全部数据后($i-1)才结束,而有 break 时则在发现第一个合数时就结束了,其后的无效劳动也就不必再做了

+1

你尝试求20000内或更大的质数时,你就知道有break和没break的区别了,你不妨测试一下 
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn