蓝桥杯java组-输入技巧-1
前言
这是我的第一篇博客,是基于PTA-1007 素数对猜想,提出的对java输入输出的性能开销的思考。写这个系列的博客,我主要想要和大家分享一下在备战蓝桥杯的过程中,所遇到的一些问题以及我所采取的解决方式,以及个人的见解,还请大家多多指教
一、问题提出
链接: PAT乙组-1007 素数对猜想.
解题思路:利用筛法求素数,并利用2个变量记录相邻素数的值以便做差
二、代码
1.java代码实现(Scanner获取输入)
在使用Scanner作为输入的情况下:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int n;
Scanner sc = new Scanner(System.in); //获取控制台输入
n = sc.nextInt();
int count = 0; //记录相邻素数相差为2的对数
int a=-1,b=-1; //记录相邻素数的值
boolean flag = true;
boolean[] data = new boolean[n+1]; //以数组的下标代表数字的值
data[0] = data[1] = true; //0和1不是素数
for(int i=2;i<=n;i++) {
if(!data[i]) {
for(int j=2*i;j<=n;j+=i)
data[j] = true;
if(flag) {
a = i;
flag = false;
}else {
b = i;
flag = true;
}
if(b-a==2 || b-a==-2) count++;
}
}
System.out.println(count);
}
}
运行结果如下:

最低0.47元/天 解锁文章
1392

被折叠的 条评论
为什么被折叠?



