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

WBOY
Release: 2016-06-23 13:59:21
Original
803 people have browsed it

// 获取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对吧?
Copy after login


回复讨论(解决方案)

有没有 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-- ----------------------------
Copy after login

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!