about summary refs log tree commit diff
path: root/NTU/pi.c
diff options
context:
space:
mode:
authorNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-15 15:09:13 +0700
committerNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-15 15:09:13 +0700
commit9e28e4c7b67c54229df11d355047ac8a88ea1817 (patch)
tree0d9d40db69613c2c49564a3f1987a005d61f4db3 /NTU/pi.c
parent67393f42f41ab92219deb549f711121c4dab845b (diff)
downloadcp-9e28e4c7b67c54229df11d355047ac8a88ea1817.tar.gz
Normalize pathname
Diffstat (limited to 'NTU/pi.c')
-rw-r--r--NTU/pi.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/NTU/pi.c b/NTU/pi.c
deleted file mode 100644
index 0dc8a1e..0000000
--- a/NTU/pi.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-
-int main()
-{
-	long i, j;
-	char prime[44712] = {0, 0, [2 ... 44711] = 1};
-	for (i = 2; i < 212; i++)
-		if (prime[i])
-			for (j = i * i; j < 44712; j += i)
-				prime[j] = 0;
-
-
-	long primes[4648];
-	j = 0;
-	for (i = 0; i < 44712; i++)
-		if (prime[i])
-			primes[j++] = i;
-
-	long l, r;
-	scanf("%ld %ld", &l, &r);
-
-	long imax = (long) sqrt(r);
-	for (i = 0; i < 4648; i++)
-		if (primes[i] > imax) {
-			imax = i;
-			break;
-		}
-
-	r -= l - 1;
-	long *list = malloc(r * 4);
-	for (i = 0; i < r; i++)
-		list[i] = 1;
-
-	long prime0, l0;
-	for (i = 0; i < imax; i++) {
-		prime0 = primes[i];
-		l0 = (l % prime0) ? (prime0 - (l % prime0)) : 0;
-		l0 = (l + l0 > prime0 * prime0) ? l0 : (prime0 * prime0 - l);
-		for (j = l0; j < r; j += prime0)
-			list[j] = 0;
-	}
-
-	long val = 0;
-	for (i = 0; i < r; i++)
-		if (list[i])
-			val++;
-
-	printf("%ld\n", val);
-
-	return 0;
-}