这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战
🌲本文收录于专栏《Java入门练习100例》——试用于学完「Java基础语法」后的巩固提高及「LeetCode刷题」前的小试牛刀。
点赞再看,养成习惯。微信搜索【一条coding】关注这个在互联网摸爬滚打的程序员。
本文收录于技术专家修炼,里面有我的学习路线、系列文章、面试题库、自学资料、电子书等。欢迎star⭐️
题目描述
难度:简单
计算500以内的素数和。
知识点
- 素数的定义
break
和continue
- 开方运算
解题思路
1.素数的定义
大于1的自然数中,除了1和它本身以外不再有其他因数就叫做素数。
比如2=1×2;5=1×5;
所以2、5就是素数。但6=1×6=2×3
,即6除了1和自身6外还有其他因数2和3,不是素数。
2.break和continue
break
:终止所有循环,直接跳出。
continue
:终止本次循环,继续执行下一次循环。
3.开方运算
Math.sqrt()
代码实现
/**
* 求500以内的素数和
*/
public class question_08 {
public static void main(String[] args) {
int sum=0,i,j;
for(j=2;j<=500;j++) {
for( i=2;i<=j/2;i++) {
if(j%i==0)
break; //说明除去1和本身有其他除数,不是素数,也就没有继续循环的必要
}
if(i>j/2) { //i>j/2说明,break没有被执行到,即除去1和本身无其他除数,是素数
sum+=j;
}
}
System.out.println(sum);
}
}
输出结果
扩展总结
思考:如果是计算500w以内的素数和,如何提高效率呢?
回答:将j/2
改为Math.sqrt()
。
最后
独脚难行,孤掌难鸣,一个人的力量终究是有限的,一个人的旅途也注定是孤独的。当你定好计划,怀着满腔热血准备出发的时候,一定要找个伙伴,和唐僧西天取经一样,师徒四人团结一心才能通过九九八十一难。 所以,
如果你想学好Java
想进大厂
想拿高薪
想有一群志同道合的伙伴
请加入技术交流