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;
}
目录
相关文章
谷歌软件工程师的一天
作者:Dimitris Leventeas 链接:https://dimle.wordpress.com/2022/04/24/my-typical-working-day-as-software-engineer/
143 0
|
移动开发 安全 程序员
Facebook的黑客马拉松文化
Facebook 于2012年5月18日晚登陆纳斯达克上市,交易代码“FB”。然而很少有人知道的是,Fackbook庆祝上市的方式是举办一场黑客马拉松。这场黑客马拉松在扎克伯格象征性地敲响纳斯达克开盘钟时达到高潮。
351 0
Facebook的黑客马拉松文化
像Google一样开会,互联网营销
  来源:Business Week  翻译:@SweetRiver   “开会”,在现在的商业运转中,这两个字的名声非常不好,因为真正能通过会议这个形式取得什么成果的很少。我记得Dilbert(美国漫画家)曾经有一幅漫画这样画的:几个人围着桌子坐着,会议组织者说“今天会议没什么特别的议程。
1015 0