欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2024-01-17 15:28:16
...
// 获取100?200之间的素数function main(){	for($i=100; $i";		}	}}// 我的疑虑在break那个地方,测试最后的结果,有没有break,都是一样的结果。// 但如果要用程序来解释数学定义,就得加上break对吧?


回复讨论(解决方案)

有没有 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-- ----------------------------