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

解决方案 »

  1.   

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

  2.   

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

  3.   


    /*
    Navicat MySQL Data TransferSource Server         : localhost
    Source Server Version : 50532
    Source Host           : localhost:3306
    Source Database       : testTarget Server Type    : MYSQL
    Target Server Version : 50532
    File 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
    -- ----------------------------