题目描述
题意:给出字符串长度,及n,求给定字符串中第一个n位素数
因为对字符串操作还不够熟悉,故而代码参考点击跳转,仅供自己阅读
利用char数组:
#include <cstdio>
using namespace std;
bool is_prime(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0)return false;
}
return true;
}
void exec(){
int L,K;
scanf("%d%d",&L,&K);
char str[1010];
scanf("%s",str);
bool flag = true;
for(int i=0;i<=L-K;i++){
int temp=0;
for(int j=0;j<K;j++){
temp=temp*10+str[j+i]-'0';
}
if(is_prime(temp)){//试之能够输出前导0
for(int j=0;j<K;j++){
printf("%c",str[i+j]);
}
printf("\n");
flag=false;
break;
}
}
if(flag)
printf("404\n");
}
int main(){
exec();
return 0;
}
利用string:
#include <iostream>
#include <string>
using namespace std;
bool isPrime(int n) {
if (n == 0 || n == 1) return false;
for (int i = 2; i * i <= n; i++)
if (n % i == 0) return false;
return true;
}
int main() {
int l, k;
string s;
cin >> l >> k >> s;
for (int i = 0; i <= l - k; i++) {
string t = s.substr(i, k);
int num = stoi(t);
if (isPrime(num)) {
cout << t;
return 0;
}
}
cout << "404\n";
return 0;
}