1152 Google Recruitment

本体传送门

解题思路

这道题是一道字符串处理题,由于这里已经给出了固定长度k,所以我们只要对字符串从头到尾遍历一遍就行了

刚开始我还打算用暴力枚举,后来发现完全不需要。只需要用substr函数提取出每个以i开头,长度为k的子串,转换为整数后,判断是不是素数就可以了。

ac✅️代码

#include<iostream>
#include<string>

using namespace std;
//不会溢出,存数要用字符串,然后转变为整数

bool is_Prime(int x)
{ 
	if( x < 2 ) return false;
	for(int i = 2 ; i <= x/i ; i ++)
	{
		if(x % i == 0) return false;
	} 
	
	return true;
}

int main()
{
	int n,k;
	cin>>n>>k;
	string str;
	cin>>str;
	//注意这里是小于等于
	for(int i = 0 ; i <= n - k; i ++)
	{
		string tar = str.substr(i , k);
		if(is_Prime(stoi(tar)))
		{
			cout<<tar<<"\n";
			return 0;
		}		
	}
	cout<<"404\n";
	return 0;
	
}
posted @ 2026-03-29 12:39  shuiwangrenjia  阅读(1)  评论(0)    收藏  举报