Cerința
Să se scrie un program care citește un număr natural k
și afișează cel mai mic număr natural n
mai mare decât 1
, care nu este divizibil cu primele k
numere prime și nu este prim.
Fișierul de intrare kprim.in
conține pe prima linie numărul k
.
Date de ieșire
Fișierul de ieșire kprim.out
va conține pe prima linie numărul n
, reprezentând cel mai mic număr natural n
,care nu este divizibil cu primele k
numere prime și nu este prim.
Restricții și precizări
1 ≤ k ≤ 10000
Exemplu
kprim.in
3
kprim.out
49
Explicație
Primele 3
numere prime sunt 2
, 3
, 5
.
Numerele care nu sunt divizibile cu 2
, 3
sau 5
sunt : 7
, 11
, 13
, 17
, 19
, 23
, 31
, 37
, 41
, 47
, 49
, …
49
este cel mai mic număr care nu este prim.
#include <bits/stdc++.h> using namespace std; ifstream fin("kprim.in"); ofstream fout("kprim.out"); unsigned long long prim (unsigned long long n) { if (n==0 || n==1) return 0; if(n==2) return 1; if(n%2==0) return 0; for (unsigned int i=3;i*i<=n;i += 2) if(n%i==0) return 0; return 1; } int main() { unsigned long long n,x,r; fin>>n; if(n==1) fout<<9; else {x=3; while(n>0) { if(prim(x)) { r=x; n--; } x++; } unsigned long long p; p=r*r; fout<<p; } return 0; }