专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

JAVA筑基100例第2题判断101200之间有多少个素数

  作者简介:大家好,我是小虚竹。Java领域优质创作者,CSDN博客专家,华为云享专家,掘金年度人气作者,阿里云专家博主,51CTO专家博主
  技术活,该赏
  点赞收藏再看,养成习惯
  零、前言
  今天是学习JAVA语言打卡的第2天,我的学习策略很简单,题海策略费曼学习法。如果能把这100题都认认真真自己实现一遍,那意味着JAVA语言已经筑基成功了。后面的进阶学习,可以继续跟着我,一起走向架构师之路。一、题目描述
  题目:判断101200之间有多少个素数,并输出所有素数。二、解题思路:循环法
  素数,又称质数,定义是:除了1和它本身以外不再有其他的除数整除。
  判断素数的方法:从2到n1判断有没有能整除n的数。如果有,则不是素数,否则,是素数三、代码详解publicclassBasics02{publicstaticvoidmain(String〔〕args){inti,j;从101~200进行筛选for(i101;i200;i){从2~i1的值for(j2;ji1;j){if(ij0){i与j互相取余,如果余数为0则肯定不是素数,跳出循环break;}}if(ij){如果i等于j则说明完成了从2~i1的循环,说明每一次取余的值都不是0。结果肯定是素数System。out。println(i是素数);}}}}
  解法二:循环对半法思路
  素数,又称质数,定义是:除了1和它本身以外不再有其他的除数整除。从2到n1判断有没有能整除n的数。每拿到一个数,判断该数是否是素数;
  从2开始,遍历到该数的一半的数据,看是否有数据可以整除它,有就不是素数,没有就是素数。
  注:为什么是该数的一半,因为素数的特性,那肯定不能被2整除了,被2后面的数整除得到的数据肯定小于该数的一半。
  这种写法会少循环一半的数据。提高效率。代码详解publicclassBasics022{publicstaticvoidmain(String〔〕args){inti,j;从101~200进行筛选for(i101;i200;i){标记位当前的数是素数booleanflagtrue;从2~i1的值for(j2;ji2;j){if(ij0){i与j互相取余,如果余数为0则肯定不是素数,跳出循环flagfalse;break;}}if(flag){根据标记位flag的结果。true结果肯定是素数System。out。println(i是素数);}}}}
  解法三:开方法思路
  素数,又称质数,定义是:除了1和它本身以外不再有其他的除数整除。开方求解原理:一个数的约数在其开方的左边,那肯定会存在一个约数在其开方的右边,所以只要循环到开方数就行。证明:假设数mpq,且pq则mpp所以pm
  由此可得出上面的结论,一个数如果存在约数,那肯定一个约数在其开方的左边,另一个约数在其开方的右边。代码详解publicclassBasics023{publicstaticvoidmain(String〔〕args){从101~200进行筛选for(inti101;i200;i){开方求解原理:一个数的约数在其开方的左边,那肯定会存在一个约数在其开方的右边,所以只要循环到开方数就行intsqrtNum(int)Math。sqrt(i);for(intk2;ksqrtNum;k){if(ik0){i与k互相取余,如果余数为0则肯定不是素数,跳出循环break;}执行到这里,说明这个数在其开方的左边找不到约数if(ksqrtNum){System。out。println(i是素数);}}}}}
  解法四:试除法升级版思路
  其实前面几种都是试除法,那虚竹哥就简单介绍下试除法的概念:试除,顾名思义,就是不断地尝试能否整除。比如要判断自然数x是否素数,就不断尝试小于x且大于1的自然数,只要有一个能整除,则x是合数;否则,x是素数。
  素数,又称质数,定义是:除了1和它本身以外不再有其他的除数整除。开方求解原理:一个数的约数在其开方的左边,那肯定会存在一个约数在其开方的右边,所以只要循环到开方数就行。质因数,是指能整除给定正整数的质数。指一个正整数的约数,并且该数还属于是质数的数字。判断素数,真的需要拿2间的所有整数去除吗?这样有些浪费,比如要判断101是否质数,101的根号取整后是10,需要尝试的数分别是:3,4,5,6,7,8,9,10的数。明显我们知道,除了2之外,所有的可能的质因数,都是奇数。那再优化下,就是需要尝试的数分别是:3,5,7,9的数。其中9肯定不行。那就是3,5,7重点来了,有没有发现什么,都是素数啊。结论:只要尝试试除小于的素数即可。代码实现步骤:从101~200进行筛选循环只要尝试小于x的素数即可其中获取x的素数抽象出一个方法出来其中要用到算法理论的:以空间换时间。代码详解publicclassBasics024{publicstaticvoidmain(String〔〕args){从101~200进行筛选循环只要尝试小于x的质数即可获取x的质数for(inti101;i200;i){x的值intsqrtNum(int)Math。sqrt(i);只要尝试小于x的质数即可x的质数的获取ListIntegerprimeListprimes(2,sqrtNum);booleanflagtrue;for(intj0;jprimeList。size();j){if(iprimeList。get(j)0){i与k互相取余,如果余数为0则肯定不是素数,跳出循环flagfalse;break;}}if(flag){System。out。println(i是素数);}}}privatestaticListIntegerprimes(intstartNum,intendNum){ListIntegerprimeListnewArrayList();primeList。add(2);primeList。add(3);for(intistartNum;iendNum;i){开方求解原理:一个数的约数在其开方的左边,那肯定会存在一个约数在其开方的右边,所以只要循环到开方数就行intsqrtNum(int)Math。sqrt(i);for(intk2;ksqrtNum;k){if(ik0){i与k互相取余,如果余数为0则肯定不是素数,跳出循环break;}执行到这里,说明这个数在其开方的左边找不到约数if(ksqrtNum){primeList。add(i);}}}returnprimeList;}}
  解法五:素数筛思路
  素数的倍数不是素数。代码详解publicclassBasics025{publicstaticvoidmain(String〔〕args){定义vis数组true:表示不是素数false:表示是素数boolean〔〕visnewboolean〔201〕;默认初始值为false,即默认全为素数vis〔0〕vis〔1〕true;0,1不是素数for(inti2;i200;i){素数的倍数一定不是素数for(intjii;j200;ji){vis〔j〕true;}}for(inti0;i200;i){if(!vis〔i〕i101){System。out。println(i是素数);}}}}
  我是虚竹哥,我们下一题见~

恩比德3310哈登168珀尔特尔1610576人送马刺8连败直播吧2月4日讯NBA常规赛,76人客场挑战马刺。76人东部第三,马刺西部倒数第二。哈登落选了全明星替补阵容。比赛开始,76人连续出现失误,但随后及时调整,76人内外开花连续拿分,斯通心仪保罗乔治!火箭快船酝酿7换1交易,小波特有望被送走?今日NBA常规赛继续进行,魔术森林狼两支球队的大规模冲突和欧文递交交易申请登上了各大体育媒体的头版头条。尤其是欧文突然宣布希望离开布鲁克林让人震惊,不久前他还在接受采访时表示杜兰特法兰克福主场进攻威力强劲,柏林赫塔复赛后攻防两端都不太行!法兰克福VS柏林赫塔法兰克福目前取得9胜5平4负的成绩,排名第六的位置,目前主场打出了5胜1平3负的成绩,表现还行,排名第七的位置,有着强势的进攻表现,9轮主场打进21球。球队复赛前中国女篮教练被查,曝孙悦重返老东家,新疆38亿主场亮相中国体坛近段时间发生了不少争议和问题,尤其是在管理层面上。继李铁被查后,前中国篮协副主席李亚光因为涉嫌严重违纪违法,目前正在接受调查。此消息一出,引发严重关注和广泛的讨论。提起李亚20,皇马大爆发,掀翻西甲6冠王豪取5连胜,一夜仅差领头羊5分赛前在西甲积分榜位列第2的皇家马德里队迎来西甲第17轮的较量,皇马此役坐镇自己的主场PK西甲联赛6次冠军得主赛前排名第14的瓦伦西亚队。赛前瓦伦西亚队遭遇了一波各项赛事的2连败以及场均27分,降薪终老勇士!库里最佳搭档果然是你,四冠王实至名归金州勇士队本赛季有点颠沛流离,打出过西部第四的战绩,也跌下过西部第12名的位置。不久前,勇士队连续升到西部前六好几次,但是都没有把握好机会,巩固好西部前六的地位。最近勇士队遭遇两连金州勇士thelastdance上赛季总决赛,金州勇士戏剧性赢得总冠军之后,没人会想到他们本赛季居然深陷附加赛泥潭。也许,当休赛期高薪续约普洱,提前续约几个年轻人,就早已注定了本赛季会是个失败的赛季,或者说老板在默森未想到降级区的埃弗顿会出售球员,只要态度正确枪手会获胜直播吧2月4日讯英超第22轮阿森纳将要对阵埃弗顿,在接受采访谈及本场比赛的时候,默森表示只要枪手态度正确,就会获胜。默森说我认为现在这会是一场不同的比赛,阿森纳引进了很多球员,特罗(新春走基层)广西中越边境举办侬峒节游客体验民俗风情男女老少穿着黑衣壮服饰参加活动。龙州县融媒体中心供图中新网崇左2月4日电(罗国庆许志平农基椿农振华)近日,地处中越边境的广西崇左市龙州县金龙镇迎来隆重而热闹的侬垌节。当地壮族民众身彭州市大唐牡丹园土地艺术馆景区涉案2200万元拍卖大唐牡丹园距彭州市7公里,其亭园建筑风格以仿唐建筑为基调,古朴典雅,气势宏伟。楼台亭阁湖山水榭飞瀑流泉奇花异草错落有致。收集培育了国内外的精品牡丹及太空牡丹,品种达200余个。曾经2023斯里兰卡入境最新政策原创大百合大百合漫游斯里兰卡202302051239欢迎访问我们的官网www。lilyholidaytour。com大百合邀请你参加2023一定要拔草的神奇岛国之旅MayAyubo
春暖花开闽西大地来相约穗龙合作一家亲,共叙江水山海情。悠悠珠江滔滔汀水,连接着广州与龙岩。文旅合作,共享资源,互送游客,两地携手开启新篇章。龙岩,亦称闽西,是全国唯一以龙字命名的地级市。红色,是这片土地走进雪域江南,欣赏醉美西藏总要去趟西藏吧,看看心心念念的布达拉宫,吹吹羊湖的风,漫步在古老的八廓街感受一下缺氧但不缺信仰的地方。西藏确实有一种魔力吧,我刚从西藏旅行才回来不久,怎么说呢?其实很多人对西藏旅行旅游市场迅速回暖广西侗乡特色百家宴成爆款中新社柳州2月12日电题旅游市场迅速回暖广西侗乡特色百家宴成爆款作者李娇阳从中国农历除夕开始,54岁的吴爱仙几乎每天都要在餐馆的厨房里从早忙到晚,一直持续到现在。资料图为广西柳州市HeavenBurnsRed绯染天空下载教程,红烧天堂steam官网下载入库绯染天空HeavenBurnsRed是被国内玩家成为红烧天堂的二次元rpg游戏,在上线之初闯入日服畅销榜,受到玩家们的关注,但因没有中文劝退了大波玩家。好消息是绯染天空终于迎来官中陕西菜卷孜卷的做法孜卷是陕西乡村农家特色面食,因其皮薄陷大味道好而得名。孜卷又叫菜卷滋卷,菜莽子等。这是一种似菜似饭亦菜亦饭的食品。在陕西方言里,滋纸子孜的读音基本相同,我觉得只有滋更能表达出这种卷又到赏梅时,第28届南京国际梅花节明日开幕,36项特色活动等你来来源交汇点新闻客户端交汇点讯相思一夜红梅发,又到早春赏梅时。随着南京梅花山进入整体观赏期,2月13日,由南京市政府主办,南京市文旅局中山陵园管理局承办的梅开盛世,魅力南京第二十八届西观音山游记耿峪西观音山在西安名气相对不高,但是爱好户外的朋友基本没有不知道的,这里也是去首阳山的必经之路,可是耿峪里的大小石门,瀑连沟嬉水,漂流等今年却是火了一把,很多去的朋友都是从观音山下有风的地方除了大理,还有诚意满满的水墨嘉善有风的地方除了大理,还有诚意满满的水墨嘉善作为一名酷爱旅游的小驴友,最喜欢的就是逢年过节,到美丽而又充满诗意的地方走走。无论是被去有风的地方又一次带火的大理,还是上有天堂,下有苏杭护国寺小吃之晨昏定省跟护国寺小吃的缘分,还得从单位取消午饭说起。削峰填谷,平均起来,餐补范围内解决工作餐基本没问题,且口味品质有得保证。然后,落到本篇文字上,还得说春节临近,疫情防控政策优化,外地游客沂南沉浸式情景小剧入选基层公共文化服务高质量发展典型案例2月12日,推进公共文化服务高质量发展工作会议在湖北省武汉市召开。会议公布了由中央宣传部文化和旅游部国家发展改革委组织遴选的基层公共文化服务高质量发展典型案例,共51个。山东省两项小米MIXFOLD3规格泄露或将采用潜望镜式长焦镜头gizchina报道,目前市场上折叠式手机的品牌并不多。三星拥有全球最多的折叠式设备以及市场份额。最初,华为和三星在折叠市场上势均力敌。然而,在美国对华为实施禁令后,该公司无法继续
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网