您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/3/25 11:31:16发布9次查看
// 获取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 .
; } }}// 我的疑虑在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-- ----------------------------
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product