Uva 10852 Solution

#include<bits/stdc++.h>
using namespace std;
#define N 10000
int p[N+1];

void prime()
{
    int i, j, l;
    l = sqrt(N);
    p[1] = 1;
    for(i=2; i<=l; i++)
    {
        if(p[i] == 0)
        {
            for(j=2; i*j<=N; j++)
                p[i*j] = 1;
        }
    }
}

int main()
{
    int a, n, m, i, j;
    prime();

    while(cin >> a)
    {
        for(j=1; j<=a; j++)
        {
            cin >> n;
            m = n/2;

            for(i=m; i<=n; i++)
            {
                if(p[i] == 0)
                {
                    if(n < i*2)
                    {
                        cout << i << endl;
                        break;
                    }
                }
            }
        }
    }

    return 0;
}

Comments