uint64_t PrimeSieve::nthPrime(int64_t n, uint64_t start) { setStart(start); double t1 = getWallTime(); if (n == 0) n = 1; // Like Mathematica else if (n > 0) start = add_overflow_safe(start, 1); else if (n < 0) start = sub_underflow_safe(start, 1); uint64_t stop = start; uint64_t dist = nthPrimeDist(n, 0, start); uint64_t nthPrimeGuess = add_overflow_safe(start, dist); int64_t count = 0; int64_t tinyN = 10000; tinyN = max(tinyN, pix(isqrt(nthPrimeGuess))); while ((n - count) > tinyN || sieveBackwards(n, count, stop)) { if (count < n) { checkLimit(start); dist = nthPrimeDist(n, count, start); stop = add_overflow_safe(start, dist); count += countPrimes(start, stop); start = add_overflow_safe(stop, 1); } if (sieveBackwards(n, count, stop)) { checkLowerLimit(stop); dist = nthPrimeDist(n, count, stop); start = sub_underflow_safe(start, dist); count -= countPrimes(start, stop); stop = sub_underflow_safe(start, 1); } } if (n < 0) count -= 1; checkLimit(start); uint64_t overValue = 3; dist = nthPrimeDist(n, count, start) * overValue; stop = add_overflow_safe(start, dist); NthPrime np; np.findNthPrime(n - count, start, stop); seconds_ = getWallTime() - t1; return np.getNthPrime(); }
countPrimes(int a, int b) { if(a>b) return 0; if(isprime(b)) { printf("%d ",b); return 1 + countPrimes(a,b-1); } else return countPrimes(a,b-1); }
int main(int argc, char const *argv[]) { int i; int N = atoi(argv[1]); int nodesAlloc = ((N-2)/16384) + 2; head= ( seg * ) malloc(sizeof(seg)); pt=head; for (i=1;i<nodesAlloc;i++) { pt->next = ( seg *) malloc(sizeof (seg)); //allocate forward nodes pt->prev = pt; //allocate backward nodes pt=pt->next; } printf("Allocated %d nodes\n",i); sieveOfE(N); primecount = countPrimes(N)-1; printf("Amount of primes = %d \n", primecount); while(numbers != EOF){ printf("Enter your numbers or EOF:"); // if an odd integer is entered or eof is detected exit if ( scanf("%d", &numbers) == EOF || numbers % 2 != 0 ) { break; } else{goldbach(numbers);} } return 0; }
int main(void) { int max_number; float ticks; char * PrimeNumbers; printf("\nMaximum number: "); scanf("%u",&max_number); PrimeNumbers = (char *) calloc(max_number % 16 == 0 ? max_number / 16 : 1 + max_number / 16, 1); if (!PrimeNumbers) { fprintf(stderr, "Unable to allocate memory\n"); return -1; } ticks = clock(); findPrimes(PrimeNumbers, max_number); //printf("2\n");printPrimes(PrimeNumbers, max_number); printf("Found %u primes between 2 and %u in %g seconds\n",countPrimes(PrimeNumbers, max_number),max_number,(clock() - ticks)/CLOCKS_PER_SEC); free(PrimeNumbers); return 0; }
main() { int a,b; printf("Enter values of a and b :"); scanf("%d %d",&a,&b); printf("\nTotal prime numbers = %d\n",countPrimes(a,b)); }
int main(void) { long long n; readInputData(&n); writeOutputData(countPrimes(n), n); return 0; }
int main() { double start = GetTickCount(); countPrimes(150000); double end = GetTickCount(); printf("\ncost=%lfms\n", end - start); return 0; }
int main(int argc, char const *argv[]) { int N; N = 100; printf("%d\n", countPrimes(N)); return 0; }
int main(int argc, char *argv[]) { if (argc != 2) { fprintf(stderr, "Usage: %s n\n", argv[0]); return 1; } printf("%d\n", countPrimes(atoi(argv[1])) ); return 0; }
int main() { int n=0; while(1) { scanf("%i",&n); printf("%i\n", countPrimes(n)); } return 1; }
//个人测试用例 int main(void) { int num; scanf("%d", &num); int cnt = countPrimes(num); printf("\n%d\n", cnt); return 0; }
void readLinesFromFile(const char* filePath) { assert(filePath); std::string lineBuffer; std::ifstream file; file.open(filePath); std::vector<std::vector<int> > primeRanges; while (std::getline(file, lineBuffer)) { if (lineBuffer.empty()) { continue; } std::vector<int> range = intenizeString(lineBuffer, ","); primeRanges.push_back(range); } countPrimes(primeRanges); }
int main() { int e, d, c = 0; for(int a = -999; a <= 999; ++a) { for(int b = -999; b <= 999; ++b) { int k = countPrimes(a,b); if(k > c) { c = k; e = a; d = b; } } } std::cout << e*d; }
void sieve(int n) { int i, p = 2, pmax = (int)sqrt(n); char set[n]; unsigned long count = sizeof(set) / sizeof(set[0]); for (i = 0; i < count; i++) { set[i] = 1; } set[0] = set[1] = 0; while (p <= pmax) { for (i = p * p; i < count; i += p) { set[i] = 0; } do { p++; } while (!set[p]); // continue search for primes }; countPrimes(set, count); }
int main() { int n; scanf("%d", &n); printf("%d ", countPrimes(n)); return 0; }
int main() { /* 348513 */ printf("%d\n", countPrimes(5000000)); return 0; }
int main() { printf_s("The result is: %d\n", countPrimes(121)); return 0; }
int main() { int ret = countPrimes(1500000); printf("%d\n", ret); }
int main() { int count = countPrimes(1500000); printf("%d\n", count); return 0; }