题解 UVA541 【Error Correction】

· · 题解


直接模拟即可

#include<bits/stdc++.h>
using namespace std;
bool zs(int l) {
    if(l<2) return false;
    for(int i=2; i<=sqrt(l); i++)
        if(l%i==0)
            return false;
    return true;
}
int a[10];
int main() {
    for(int i=0; i<=9; i++)
        cin>>a[i];
    long long ans=0;
    long long sum[10];
    int front=0;
    int n;
    cin>>n;
    for(int i=0; i<=9-n+1; i++) {
        ans=0;
        for(int j=i; j<=n+i-1; j++) {
            if(a[i]==0)
                break;
            ans=ans*10+a[j];
        }
        if(zs(ans)) {
            front++;
            sum[front]=ans;
        }
    }
    cout<<sum[1];
    for(int i=2; i<=front; i++)
        cout<<","<<sum[i];
    return 0;
}