Maison > développement back-end > tutoriel php > 用一个函数获取质数的疑惑

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

WBOY
Libérer: 2016-06-23 13:59:21
original
835 Les gens l'ont consulté

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


回复讨论(解决方案)

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

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

你尝试求20000内或更大的质数时,你就知道有break和没break的区别了,你不妨测试一下

……
感谢xuzuning,让我又巩固了一把基础知识。

/*Navicat MySQL Data TransferSource Server         : localhostSource Server Version : 50532Source Host           : localhost:3306Source Database       : testTarget Server Type    : MYSQLTarget Server Version : 50532File Encoding         : 65001Date: 2014-04-10 16:53:46*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `guagua_config`-- ----------------------------DROP TABLE IF EXISTS `guagua_config`;CREATE TABLE `guagua_config` (  `gid` int(10) unsigned NOT NULL AUTO_INCREMENT,  `eid` int(11) NOT NULL DEFAULT '0',  `reward` text COMMENT '设置将项,序列化',  `words` varchar(200) DEFAULT '',  `stoptime` datetime DEFAULT NULL,  PRIMARY KEY (`gid`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='刮刮有奖配置';-- ------------------------------ Records of guagua_config-- ------------------------------ ------------------------------ Table structure for `guagua_order`-- ----------------------------DROP TABLE IF EXISTS `guagua_order`;CREATE TABLE `guagua_order` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `eid` int(11) NOT NULL DEFAULT '0',  `phone` int(11) NOT NULL DEFAULT '0',  `name` varchar(10) NOT NULL DEFAULT '',  `reward` varchar(10) NOT NULL DEFAULT '' COMMENT '所得奖',  `time` datetime NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of guagua_order-- ----------------------------
Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal