谷歌的招聘(C语言实现)

编程入门 行业动态 更新时间:2024-10-14 20:21:50

谷歌的招聘(C<a href=https://www.elefans.com/category/jswz/34/1770116.html style=语言实现)"/>

谷歌的招聘(C语言实现)

2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘。内容超级简单,就是一个以 结尾的网址,而前面的网址是一个 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 的前导零。

#include <stdio.h>
#include <math.h>int isprime(int num){int i, ret = 1;if (num <= 1){ret = 0;}for (i=2; num>2&&i<=sqrt(num); i++){if (num % i == 0){ret = 0;break;}}return ret;
}int main(){int l, k, i, j, sum, num;int flag = 0, pos = 0;scanf("%d%d", &l, &k); //输入数据getchar(); //读走换行符char str[l];
//     gets(str); //会发生错误
//     scanf("%s", str);for (i=0; i<l; i++){str[i] = getchar();}//     printf("hey\n");
//     for (i=0; i<l; i++){
//          printf("%c", str[i]);
//     }for (i=k-1; i<l; i++){ //处理数据num = str[i] - '0';
//         if (num%2==0 || num%5==0){ //不可以这样判断
//             continue; //因为2和5都是素数
//         }sum = 0;for (j=i-k+1; j<=i; j++){ //计算由k位数字组成的值sum = sum * 10 + (str[j] - '0');}if (isprime(sum) == 1){ //判断是否是素数flag = 1;pos = i;break;}}if (flag == 1){ //输出数据for (i=pos-k+1; i<=pos; i++){printf("%d", str[i] - '0');}
//         printf("%d", sum);}else{printf("404");}return 0;
}

更多推荐

谷歌的招聘(C语言实现)

本文发布于:2024-03-11 23:43:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730206.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!