欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

1094 谷歌的招聘 (20分) C++版4ms通过所有测试点

程序员文章站 2022-04-19 14:10:06
喜欢我的文章,记得点赞+收藏+关注の,你的反馈就是我不断更新的动力!QQ/Wechat:235 40008原题目链接:1094 谷歌的招聘 (20分)解题思路:1.从头开始截取k位字符2.如果k位字符对应的整数是素数,则输出该素数,结束程序。3.截到末尾还没有素数,则输出404。更多注解写在代码中了,代码如下:/* Copyright:Xinyuan wang Date: 2020/7/8 22:28:10 Description:1094 谷歌的招聘 (20分)*/...

喜欢我的文章,记得点赞+收藏+关注の,你的反馈就是我不断更新的动力!QQ/Wechat:235 40008

原题目链接:1094 谷歌的招聘 (20分)

解题思路:
1.从头开始截取k位字符
2.如果k位字符对应的整数是素数,则输出该素数,结束程序。
3.截到末尾还没有素数,则输出404。

更多注解写在代码中了,代码如下:

/*
    Copyright:Xinyuan wang
    Date: 2020/7/8 22:28:10
    Description:1094 谷歌的招聘 (20分)
*/
#include<bits/stdc++.h>  //万能头文件
using namespace std;
bool is_prime(int n){          //判断素数最快的判别方法
	if(n == 2 || n == 3) return 1;
	if(n % 6 != 1 && n%6 != 5) return 0;
	for(int i = 5; i < sqrt(n); i += 6)
		if(n % i == 0 || n % (i +2) == 0) return 0;
	return 1;
}

int main(int argc, char** argv)
{
	ios::sync_with_stdio(false);
	cin.tie(0);   //这2行代码目的:加快cin、cout的输入输出速度,力争最快!
	int l,k;
	cin >> l >> k;
	string s;
	cin >> s;
	for(int i = 0; i <= l - k; i++){
        string st = s.substr(i,k);
		int m = stoi(st);
		if(is_prime(m)){
			cout << st;   //注意输出字符串形式,像200236中找4位素数,0023算是解时,对应测试点2,如果输出整数m则不能输出前面2个0
			return 0;  //直接结束程序
		}
	}
	cout << "404";
    return 0;
}

喜欢我的文章,记得点赞+收藏+关注の,你的反馈就是我不断更新的动力!QQ/Wechat:235 40008

本文地址:https://blog.csdn.net/weixin_43461755/article/details/107217558