Java题解—1013 数素数 (20 分)
2021/10/15 17:14:27
本文主要是介绍Java题解—1013 数素数 (20 分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原题
点击链接跳转
代码
记错本
挺灰心的,害!
- 错误点一:对素数的认识不够准确。以至于,漏掉了2是素数这个点,不是所有的偶数都不是素数!
- 错误点二:也是错认为素数是从3开始,只计算了奇数。
- 错误点三:题意,应该是包含N和M。减2是为了迎合漏掉的素数2的位置,所以范围控制错了。
关于换行输出:可以很好的利用count计数来判断,不用额外增加变量。
错误的
package pat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m = scanner.nextInt(); int n = scanner.nextInt(); int count=0;//计数生成的素数个数 StringBuilder sb = new StringBuilder(); int prime=3;//错误点二 int newline=0; //素数生成器 while (count<=n-2) {//错误点三 if (isPrime(prime)){ count++; if (count>=m-1){//错误点三 sb.append(prime+" "); newline++;//累积换行输出 if (newline%10==0) { System.out.println(sb.toString().trim()); sb=new StringBuilder(); }else if(count==n-1){//最后一次的输出 System.out.print(sb.toString().trim()); } } } prime+=2;//错误点二 } } //完整的判断素数 public static boolean isPrime(int num){ if (num<3) return false;//错误点一 if (Math.sqrt(num)<3&&num%2==0) return false; for (int j=3;j<=Math.sqrt(num);j+=2){ if (num%j==0||num%2==0){ return false; } } return true; } }
修改后正确的
package pat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m = scanner.nextInt(); int n = scanner.nextInt(); int count=0;//计数生成的素数个数 int prime=0;//递增的素数 //素数生成器 while (count<n) { if (isPrime(prime)){ count++; if (count>=m){ if ((count-m+1)%10==0||count==n) {//当数字末尾时或最后一个数字时,换行 System.out.println(prime); }else System.out.print(prime+" "); } } prime++; } } //完整的判断素数(2是素数) public static boolean isPrime(int num){ if (num==1) return false; if (num%2==0&&num!=2) return false;//不是偶数,排除2 for (int j=3;j<=Math.sqrt(num);j+=2){ if (num%j==0){ return false; } } return true; } }
这篇关于Java题解—1013 数素数 (20 分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现