PAT (Basic Level) Practice (中文)1094 谷歌的招聘(c语言)

该程序读入一串数字和一个整数k,通过数组存储数字并判断由数组中连续k个数字组成的数是否为素数。如果找到这样的素数,就输出它,否则输出404。


AC代码

#include<stdio.h>
#include<math.h>
int judge(int n){//素数判断
    if(n<2)return 0;
    for(int i=2;i<=sqrt(n);i++){
        if(n%i==0)return 0;
    }
    return 1;
}
int check(int n[],int k){//数组形式的素数判断
    int sum=0,K=k;
    for(int i=0;i<K;i++){
        sum+=n[i]*pow(10,--k);//数组转为一个数
    }
    return judge(sum);
}
int main(){
    int l,k,n[1000];
    char t;
    scanf("%d %d%*c",&l,&k);
    for(int i=0;i<l;i++){
        scanf("%c",&t);
        n[i]=t-'0';//用数组来储存n
    }
    for(int i=0;i+k-1<l;i++){
        if(check(n+i,k)==1){
            for(int j=0;j<k;j++)printf("%d",n[i++]);
            return 0;
        }
    }
    printf("404");
    return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dragon_dd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值