1003:数素数 (20)

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)

题目描述

令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。

输入描述:

输入在一行中给出M和N,其间以空格分隔。

输出描述:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入例子:

5 27

输出例子:

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103 思路分析: 这个题,判断素数大家都会,重点是在于这个算法是否会超时,以及输出格式的问题: 素数判断:
除了1和它本身,没有其他的因子,称为素数, 可以看成 循环变量从2到n-1,但是,如果数非常大的话,这就很头疼了,
咱们来简化一下判断素数的方法,比如n=9时,因为9开根等于3,所以,判断到3就可以确定9不是素数,因此,循环变量i可以从2到根号下n,也就是【2-sqrt(n)】
当一个数被确认是素数时,就要输出了, 输出格式: 题目要求,10个一换行
那么咱就直接判断count(从2开始累加的素数的个数),分为3种情况: 1.素数的位置小于题目要求的输出范围,即count<n,这时候,不输出,继续循环;
2.素数的位置在题目要求的输出范围,首先行内输出素数,这时,素数后面的输出,又分为3种情况:
  ①输出的素数不是一行的第10个,即(count-m+1)%10!=0,
   例如题目给的测试用例,m=5,当count=5时,(count-m+1)%10=1,当count=13时,(count-m+1)%10=9,
   这个时候需要输出一个空格“ ”;
  ②输出的素数恰巧是一行的第10个,即(count-m+1)%10=0,
   例如,当count=14时,(count-m+1)%10 = 0 ,这个时候需要输出一个空行;
  ③数出的素数是要求输出的最后一个,即count=n,这个时候,直接结束程序即可; 3.素数的位置大于题目要求的输出范围,其实,程序永远都走不到这一步,当输出的素数是要求输出的最后一个时,在第二种情况的第三点已经结束程序啦 Java 代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
int m = sca.nextInt();
int n = sca.nextInt();
int count = 1;
if(m == 1) {
System.out.print(2);
if(n == 1)
return;
else
System.out.print(" ");
}
int i = 3;
while(true){
if(f(i)) { //素数判断
count++; //素数数目+1
if(count >= m) { //素数的位置在题目要求的输出范围
System.out.print(i);// 行内输出素数
if(count==n){//数出的素数是要求输出的最后一个,结束程序
return;
}
if((count-m+1) % 10 != 0) {//①(count-m+1)%10!=0,输出空格“ ”
System.out.print(" ");
}else { //①(count-m+1)%10==0,输出空行
System.out.println();
}
}
}
i+=2;
}
}
//判断素数
static boolean f(int x){
for(int j = 2; j < Math.sqrt(x) + 1; j++) {
if(x % j == 0) {
return false;
}
}
return true;
}
}

 

牛客网 PAT 算法历年真题 1003: 数素数 (20)的更多相关文章

  1. 牛客网 PAT 算法历年真题 1012 : D进制的A+B (20)

    D进制的A+B (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 输入两个非负10进制整数A和B(< ...

  2. 牛客网 PAT 算法历年真题 1009 : 1019. 数字黑洞 (20)

    1019. 数字黑洞 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定任一个各位数字不完全相同的4 ...

  3. 牛客网 PAT 算法历年真题 1011 : 个位数统计 (15)

    个位数统计 (15) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定一个k位整数N = dk-1*10k- ...

  4. 牛客网 PAT 算法历年真题 1010 : 月饼 (25)

    月饼 (25) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地 ...

  5. 牛客网 PAT 算法历年真题 1008 : 锤子剪刀布 (20)

    锤子剪刀布 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 大家应该都会玩“锤子剪刀布”的游戏:现给出 ...

  6. 牛客网 PAT 算法历年真题 1002 :数字分类 (20)

    1002 :数字分类 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定一系列正整数,请按要求对数字 ...

  7. 牛客网 PAT 算法历年真题 1001 : A+B和C (15)

    1001 : A+B和C (15) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard 题目描述 给定区间[-2的31次方, 2的31次方]内 ...

  8. 牛客网剑指offer刷题总结

    二维数组中的查找: 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 两 ...

  9. 牛客网PAT乙级(Basic Level)真题-组个最小数 (20)

    组个最小数 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定数字0-9各若干个.你可以以任意顺序排 ...

随机推荐

  1. 【BZOJ】1875: [SDOI2009]HH去散步

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1875 注意的是路径不可以重复,所以这题把边看成点.每一条无向边拆成两条有向边. 令${F[ ...

  2. P1547 Out of Hay

    传送门     练习 只是一个最小生成树的水题,拿来练练模板 AC代码: #include<iostream> #include<cstdio> #include<alg ...

  3. IDEA @Autowired 出现红色下划线 报红

    例如: 解决方法:

  4. OpenModelica部分库缺失问题解决

    问题:写下面这段代码时,保存时没有出错,但执行时提示找不到initialState这个函数. when time > redTime then state1 := Modelica.Math.R ...

  5. 记录flask使用模板时出现的“Internal Server Error”错误

    在看<Flask Web开发实战:入门.进阶与原理解析(李辉著 )>时照着书上的代码抄了一遍,然后运行时发现一直出现以下的错误 书上的源代码如下 watchlist.html <he ...

  6. spring框架 AOP核心详解

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...

  7. 力扣(LeetCode)709. 转换成小写字母

    实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" 输出: & ...

  8. 《剑指offer》第六十一题(扑克牌的顺子)

    // 面试题61:扑克牌的顺子 // 题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的. // 2-10为数字本身,A为1,J为11,Q为12,K为13,而大.小王可以看成任意 ...

  9. 关于ES6的一些新特性的学习

    一.关于变量 ES5 1.只有全局作用域变量和函数作用域变量 2.“变量提升”(当程序进入一个新的函数时,会将该函数中所有的变量的声明放在函数开始的位置.仅仅会提升变量的声明,不会提升变量的赋值) E ...

  10. QSplitter实现滑动窗口和悬浮按钮

    1         QSplitter实现滑动窗口和悬浮按钮 软件应用中需要设计右侧滑动窗口,通过一个按钮来实现窗口的隐藏和显示,应用场景比如显示主界面的详细信息. (1)   在qt design中 ...