Pagini recente » Cod sursa (job #973776) | Borderou de evaluare (job #1460371) | Borderou de evaluare (job #1513928) | Cod sursa (job #397580) | Cod sursa (job #1457501)
#include <fstream>
#include <iostream>
using namespace std;
bool isPrime(int);
int main(int argc, char **argv)
{
// INPUT
int n;
ifstream indata("ciur.in");
indata >> n;
indata.close();
// PRIME NUMBER IDENTIFICATION
n += (n % 2 == 0) ? -1 : 0;
int m = (n >= 1) ? 1 : 0;
int ciur[(n / 2) + 1];
for (int i = 0; i <= (n / 2); i++) {
ciur[i] = 0;
}
for (int i = 1; i <= (n / 2); i++) {
if (ciur[i] == 0) {
if (isPrime(i * 2 + 1)) {
m++;
for (int j = i; j <= (n / 2); j += (i * 2 + 1)) {
ciur[j] == 1;
}
}
}
}
// OUTPUT
ofstream outdata("ciur.out");
outdata << m;
outdata.close();
return 0;
}
bool isPrime(int n) {
if (n <= 1) {
return false;
}
if (n == 2) {
return true;
}
if (n % 2 == 0) {
return false;
}
for (int i = 3; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}