题源
题解
#include<stdio.h>
int judge(int n);
int main(void)
{
int i,j,L,K,a=0;
char num[1000];
scanf("%d%d",&L,&K);
scanf("%s",&num);
scanf("%s",&num);
//字符数组转数字数组
for(i=0;i<L;i++)num[i]-=48;
for(i=0;i<L-K+1;i++){
for(j=0;j<K;j++){a=a*10+num[i+j];}
if(judge(a)){
for(j=0;j<K;j++)printf("%d",num[i+j]);
printf("\n");
return 0;
}a=0;
}
printf("404");
return 0;
}
//素数判断
int judge(int n)
{
int i;
if(n==1)return 0;//素数定义,1不是素数
if(n==2)return 1;
if(n%2==0)return 0;//偶数不是素数
for(i=3;i*i<=n;i+=2)
if(n%i==0)return 0;//能分解出两个奇数因子(非1)的数不是素数
return 1;
}
这是一个关于C++编程的题目,程序旨在寻找输入字符串中所有长度为K的素数子串。程序首先将字符数组转换为数字数组,然后通过素数判断函数检查每个连续的K个数字组成的子串是否为素数。如果找到素数子串,就将其打印并结束程序。未找到则输出404。
2069

被折叠的 条评论
为什么被折叠?



