7-133 谷歌的招聘

简介: 7-133 谷歌的招聘

7-133 谷歌的招聘 (20 分)


2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘。内容超级简单,就是一个以 .com 结尾的网址,而前面的网址是一个 10 位素数,这个素数是自然常数 e 中最早出现的 10 位连续数字。能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步。



自然常数 e 是一个著名的超越数,前面若干位写出来是这样的:e = 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427427466391932003059921... 其中粗体标出的 10 位数就是答案。


本题要求你编程解决一个更通用的问题:从任一给定的长度为 L 的数字中,找出最早出现的 K 位连续数字所组成的素数。


输入格式:


输入在第一行给出 2 个正整数,分别是 L(不超过 1000 的正整数,为数字长度)和 K(小于 10 的正整数)。接下来一行给出一个长度为 L 的正整数 N。


输出格式:


在一行中输出 N 中最早出现的 K 位连续数字所组成的素数。如果这样的素数不存在,则输出 404。注意,原始数字中的前导零也计算在位数之内。例如在 200236 中找 4 位素数,0023 算是解;但第一位 2 不能被当成 0002 输出,因为在原始数字中不存在这个 2 的前导零。


输入样例 1:


20 5
23654987725541023819


结尾无空行


输出样例 1:


49877


结尾无空行


输入样例 2:


 10 3
 2468001680


结尾无空行


输出样例 2:


404


结尾无空行


n刷


#include<bits/stdc++.h>
using namespace std;
int n ,m;
string s ,t;
int isprime (int x) {
    if(x < 2 ) return 0;
    for (int i = 2; i <= x / i ; i++)
        if (x % i == 0)
            return 0;
    return 1;
}
int main () {
    cin >> n >> m;
    cin >> s;
    for(int i= 0; i <= n - m; i++) {
        int num = 0;
        for (int j = i;  j < i + m ; j++ ) 
            num = num * 10 + (s[j] - '0');
        if (isprime(num)) {
            cout.width(m);
            cout.fill('0');
            cout  << num;
            return 0;
        }
    }
    cout << 404;
    return 0;
} 


#include<iostream>
#include<string>
using namespace std;
bool isprime(int x){
    if(x<2)return 0;
    else{
        for(long long i=2;i<=x/i;i++)
            if(x%i==0)return 0;
        return 1;
    }
}
int main(){
    int m,n,flag=1;
    string s;
    cin>>m>>n;
    getchar();
    cin>>s;
    for(int i=0;i<=m-n;i++){
        string t=s.substr(i,n);
        int num=stoi(t);
        if(isprime(num)){
            cout<<t;
            flag=0;
            break;
        }
    }
    if(flag)cout<<"404";
    return 0;
}
目录
相关文章
|
存储 数据采集 缓存
搜索引擎岗位应聘必备题
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
361 1
|
算法 前端开发 Java
谷歌推荐的大学生技术学习指南
有一个扎实的计算机科学的基础,是成为成功的软件工程师的重要条件。这是一个引导大学生自学技术和非技术技能的建议。你可以通过这个指南决定选修的课程,但是请确保这个课程符合你专业要求,以保证顺利毕业。本指南提供的网上资源并不是要取代大学提供的课程。它们可能会给你所学的内容进行补充或提供一个主题的介绍。
141 0
像Google一样开会,互联网营销
  来源:Business Week  翻译:@SweetRiver   “开会”,在现在的商业运转中,这两个字的名声非常不好,因为真正能通过会议这个形式取得什么成果的很少。我记得Dilbert(美国漫画家)曾经有一幅漫画这样画的:几个人围着桌子坐着,会议组织者说“今天会议没什么特别的议程。
1023 0
|
存储 消息中间件 数据库
从 Reddit 学到的经验,互联网营销
  最近有一些比较有价值的文章似乎没引起太多人注意,比如 Steve Huffman 分享创建 Reddit 过程中的经验这篇文章,在 Twitter 上的中文技术圈子似乎没有被提及。   作为社会化新闻站点,国内似乎关注 Reddit 的人并不多,我只知道少数 Geek 是其死忠粉丝。
1369 0
|
新零售 物联网 区块链
区块链开发人员是招聘面试职业市场上最受欢迎的专家
在过去几年中,区块链技术开发者已转变为专业人员,其招聘难度在职业市场很明显的。能够找到足够的面试人员就很不错。 根据TechCrunch出版物,迄今为止,区块链专家在国际劳动力市场的需求增长速度排名第二,而每位开发人员全球大约有14个职位空缺。
2717 0