PAT.1013.数素数

题目

时间限制
200 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出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 <nobr aria&#45;hidden="true"> 1 </nobr> <math xmlns="http&#58;&#47;&#47;www&#46;w3&#46;org&#47;1998&#47;Math&#47;MathML"> <mn> 1 </mn> </math>01 103

分析:

求Pm到Pn个素数,两个问题,
1.如何确定从m到n
2.控制格式
对于问题1,每次判断该数是素数,计数器加一,当计数器到达[m,n]内输出
对于问题2,每次输出再开计数器加一,该计数器加到10换行
还有一个小问题,第10000个素数是10W+

代码(Java)

import java.util.*;
public class Main {
    static boolean judge(int x) {
        for(int i=2;i*i<=x;i++)
            if(x%i==0)
                return false;
        return true;
    }
    public static void main(String[] args) {
        Scanner in = new  Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int num=0;
        int gs=0;
        boolean flag=false;
        for(int i=2;i<=1000000;i++) {
            if(judge(i)) {
                num++;
                if(num>=a && num<=b) {
                    gs++;
                    if(!flag)
                        flag=true;
                    else 
                        System.out.print(" ");
                    System.out.print(i);
                    if(gs%10==0) {
                        System.out.println();
                        flag = false;
                    }   
                }
                if(num>b)
                    break;
            }
        }
        in.close();
    }

}

代码(cpp)

#include<iostream>
using namespace std;
bool judge(int x){
     for(int i=2;i*i<=x;i++)
            if(x%i==0)
                return false;
        return true;
}
int main(){
    int a,b;
    int num,gs;
    bool flag;
    cin>>a>>b;
    num = gs = 0;
    flag = false;
    for(int i=2;i<=1000000;i++) {
        if(judge(i)) {
            num++;
            if(num>=a && num<=b) {
                gs++;
                if(!flag)
                     flag=true;
                else 
                      cout<<" ";
                cout<<i;
                if(gs%10==0) {
                    cout<<endl;
                     flag = false;
                  }   
            }
             if(num>b)
                 break;
            }
       }
    return 0;
}
全部评论

相关推荐

1.&nbsp;基本情况方向:数据工程,时间:40分钟结束、16:00开始,无手撕,多场景2.&nbsp;自我介绍3.&nbsp;一些能够回忆起来的(或许有不正确的地方):(1)提问R:你这个项目是课程作业还是什么?R:那你说说Hive和ClickHouseR:你谈到了OLAP,那和OLTP有啥区别?R:没了?ClickHouse适合那种场景?R:可以用作实时数仓吗?R:课程中有数据库相关的吗?只有数据结构与算法?R:MySQL系统学习过吗?R:数据怎么导入到ClickHouse的?R:直接到ClickHouse?R:数仓分层?四层讲讲。R:那为什么要分层呢?DWS已经差不多了为什么还需要ADS呢?R:场景题:在你的表上新...
牛客861513826号:A场景题:数量统计不说了;退货平均时间:先沟通清楚,月平均退货时间算不算上不退货的用户,不算的话,就只计算退货用户;一个用户的退货时间减去到货时间拿到这件商品的退货时间,然后计算每个退货用户的退货时间,AVG开窗partition by月份,计算出每个月的平均退货时间。如果要算上不退货的用户,也就是让这个用户的退货时间是0,然后对所有用户计算AVG同上。 B场景题:结合下面他提示你再想想数据倾斜,其实这道题是想靠你数据倾斜怎么解决;本来是一个商品购买信息表,记录商品信息和购买者信息,如果给购买者信息加上性别,要求算出每个商品不同性别的购买人数。百分之八十女性用户,所以如果单纯对表进行分组聚合,会产生数据倾斜问题,由分组聚合产生。五种办法可以解决,两种hive参数,三种SQL,往SQL方向聊,以防他追问参数底层,参数这种东西最难聊了,别给自己挖坑
点赞 评论 收藏
分享
网安已死趁早转行:山东这地方有点说法
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务