int prIsPrime(VMGlobals *g, int numArgsPushed) { PyrSlot *a; int n, p, sqrtn, i; a = g->sp; n = slotRawInt(a); SetNil(a); if (n <= 2) { if (n == 2) { SetTrue(a); } else { SetFalse(a); } } else if (n <= nthPrime(NUMPRIMES-1)) { // do a search of the primes table i = findPrime(n); if (i >= 0) { SetTrue(a); } else { SetFalse(a); } } else { #ifdef SC_WIN32 sqrtn = (int)sqrt(static_cast<double>(n)); #else sqrtn = (int)sqrt(n); #endif for (i=0; i<NUMPRIMES; ++i) { p = nthPrime(i); if (n % p == 0) { SetFalse(a); break; } if (p >= sqrtn) { SetTrue(a); break; } } } return errNone; }
int main(int argc, char *argv[]) { int *primes = NULL; int nthPrimeNum = 0; int thePrime = 0; int i = 0; if (argc != 2) return 0; nthPrimeNum = atoi(argv[1]); primes = malloc(sizeof(*primes) * nthPrimeNum); *primes = 2; thePrime = findPrime(nthPrimeNum, primes); printf("\nthe %dth prime is %d\n", nthPrimeNum, thePrime); for (i=0; i<nthPrimeNum; i++) { printf("%d, ", primes[i]); } printf("\n"); free(primes); //XXX: will this leak memory? return 0; }
int main(){ int N,count = 0; scanf("%d", &N); findPrime(N); for(int i = 1; i < pNum; ++i){ if(prime[i] - prime[i-1] == 2){ count++; } } printf("%d\n",count); return 0; }
void theSieve(int n) { // start with 2 // cross out all multiples of 2 // then move to 3 // cross out all mutliple of 3 // then continue repeating int *numSet = malloc(n*sizeof(int)); // populate array int i = 0; int p = 2; while (i <= n-2) { numSet[i] = p; i++; p++; } i = 0; int count = 0; int numOfPrimes = 0; while (i <= n-2) { if (numSet[i] != -1 && findPrime(numSet[i]) == TRUE) { numOfPrimes++; count = 1; while (count <= n-2) { if (numSet[i] * count == numSet[count]) { numSet[count] = -1; } count++; } } i++; } printf("%d\n", numOfPrimes ); free(numSet); }
int prIndexOfPrime(VMGlobals *g, int numArgsPushed) { PyrSlot *a; int n, p; a = g->sp; n = slotRawInt(a); if (n <= 2) { if (n == 2) { SetInt(a, 0); } else { SetNil(a); } } else if (n <= nthPrime(NUMPRIMES-1)) { p = findPrime(n); if (p < 0) { SetNil(a); } else { SetInt(a, p); } } else { SetNil(a); } return errNone; }
int main(int argc, const char * argv[]) { findPrime(atoi(argv[1])); return 0; }