pat 乙级 字符串内的连续素数;
素数:除了1以为没有公因数,0和1不是素数;
代码:
#include<iostream>
#include<cstring>
using namespace std;
bool isprime(int n){
if(n==1||n==0)return false;//0和1不是素数;
for(int i=2;i*i<=n;i++){//i一直到n的平方如果都和n不相等说明就不是素数;
if(n%i==0){
return false;
}
}
return true;
}
int main(){
int n,m;
cin>>n>>m;
string s1;
cin>>s1;//int 可能存储不了;
for(int i=0;i<=n-m;i++){
string s2;
s2=s1.substr(i,m);//随i的变化,循环一次就取一次看看是不是素数;
int num=stoi(s2);
if(isprime(num)){
cout<<num;//如果你输出的是num的话就是整型输出,但是人家有前导零也要的,所以最好是输出字符串保住0;
return 0;
}
}
cout<<"404";
return 0;
}
素数的检验方法:2到n的数遍历,如果这个数的平方都不等于n就说明n是素数;