백준 4134 c++
#include <iostream>
#include <cmath>
using namespace std;
long long int longlong_input(long long int lower, long long int upper);
void input_array(long long int* array, int size);
void find_least_prime(long long int* array, int size);
long long int least_bigger_prime(long long int num);
void print_array(long long int* array, int size);
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int test;
long long int *test_case;
cin >> test;
test_case = new long long int[test];
input_array(test_case, test);
find_least_prime(test_case, test);
print_array(test_case, test);
delete[] test_case;
return 0;
}
long long int longlong_input(long long int lower, long long int upper)
{
//cout << "longlong_input" << endl;
long long int A;
while (1)
{
cin >> A;
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
void input_array(long long int* array, int size)
{
//cout << "input_array" << endl;
int i;
for (i = 0; i < size; i++)
{
array[i] = longlong_input(0, 4000000000);
}
return;
}
void find_least_prime(long long int* array, int size)
{
//cout << "find_least_prime" << endl;
int i;
for (i = 0; i < size; i++)
{
array[i] = least_bigger_prime(array[i]);
}
return;
}
long long int least_bigger_prime(long long int num)
{
//cout << "least_bigger_prime" << endl;
long long int result;
long long int i;
if (num == 1 || num == 2 || num == 0)
{
return 2;
}
else
{
;
}
while (1)
{
for (i = 2; i <= sqrt(num); i++)
{
if (num % i == 0) //소수 아님
{
break;
}
else //아직은 소수임
{
;
}
}
if (i > sqrt(num))
{
result = num;
break;
}
else
{
num++;
}
}
return result;
}
void print_array(long long int* array, int size)
{
int i;
for (i = 0; i < size; i++)
{
cout << array[i] << "\n";
}
return;
}