Pagini recente » Istoria paginii runda/cexph | Cod sursa (job #2044153) | Cod sursa (job #3258468) | Istoria paginii runda/sh_pregatire_spartanica | Cod sursa (job #551466)
Cod sursa(job #551466)
#include <stdio.h>
int
n_p(int);
int
prim(int);
int
main()
{
int n;
FILE *f;
if ((f = fopen("fractii.in", "r")) == NULL)
{
perror("Cannot open source file");
return -1;
}
if (fscanf(f, "%d", &n) != 1)
{
printf("Cannot read from file ...\n");
return -1;
}
if (fclose(f) == EOF)
perror("Cannot close source file");
if ((f = fopen("fractii.out", "w")) == NULL)
{
perror("Cannot open destination file");
return -1;
}
if (fprintf(f, "%d", n_p(n)) < 0)
{
printf("Cannot write to file...\n");
return -1;
}
if (fclose(f) == EOF)
{
perror("Cannot close destination file");
return -1;
}
return 0;
}
int
n_p(int n)
{
int i, j, k, a, c = 0;
for (i = 2; i <= n; i++)
{
for (k = 2; k <= i; k++)
if (i % k == 0 && prim(k))
{
j = 1;
do
{
j++;
} while (k * j <= i);
for (a = j; a * k <= n; a++)
c++;
}
}
return (n*(n-1) - 2 * c + 1);
}
int
prim(int n)
{
int i;
for (i = 2; i < n / 2; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}