int uniquePaths(int m, int n) { int i,j,C; int divisor[100],dividend[100]; for(i=1;i<=n+m-2;i++){ divisor[i]=dividend[i]=0; } for(i=m;i<=m+n-2;i++){ getPrime(dividend,i); } for(i=1;i<=n-1;i++){ getPrime(divisor,i); } C=1; for(i=1;i<=n+m-2;i++){ for(j=0;j<dividend[i]-divisor[i];j++){ C*=i; } } return C; }
int getPrime(int n, int lo, int hi){ //This block contains the most naive way to find the nth prime. /* for (int i = 0; primenum < n; i ++){ if (isPrime(i) == 1) primenum++; }*/ printf("%i + %i\n", lo, hi); lo = (unsigned long) lo; hi = (unsigned long) hi; unsigned long primeguess = (lo+hi)/2; unsigned long primeguessnum = primesBelow(primeguess); printf("%i, %i\n", primeguess, primeguessnum); if (primeguessnum == n){ while (isPrime(primeguess) == 0){ primeguess -= 1; } return primeguess; } else if (primeguessnum > n){ return getPrime(n, primeguess, hi); } else return getPrime(n, lo, primeguess); }
int main() { int t; scanf("%d",&t); getPrime(); while (t--) { scanf("%lld",&n); memset(ws,-1,sizeof(ws)); if (n==1000000000000LL) { puts("165633875427"); continue; } if (!n) { puts("0"); continue; } long long res=(get(n,1)-1)/2; for (int i=3; (long long)i*i<2*n; i+=2) res+=cp(i); printf("%lld\n",res/2); } return 0; }
int main(int argc, char *argv[]) { linkList *l = ( linkList* )malloc( sizeof( linkList ) ); initList( l ); getPrime( 2, l ); return 0; }
//Costruttore alloca la memoria HashClass::HashClass(){ this->size=0; hashTable = new HashItem*[TABLE_SIZE]; for (int i = 0; i < TABLE_SIZE; i++){ hashTable[i] = NULL; } this->numeroPrimo =getPrime(); }
int main(){ int t; scanf("%d", &t); while(t--){ long n; scanf("%ld", &n); printf("%ld\n", getPrime(n)); } return 0; }
int main(){ int i, j, mi; long long k; int T, N; ps = getPrime(SQRT_N_MAX, p); rep(i,ps){ k = p[i]; for(j=k;j<N_MAX;j+=k) if(!min_div[j]) min_div[j] = k; }
pf_result * prime_1_svc(int *argp, struct svc_req *rqstp) { static pf_result result; result.num = getPrime(*argp); result.time = 0; return &result; }
int main() { long counter, sum = 2; for(counter = 3; counter <= 2000000; counter += 2) sum += getPrime(counter); printf("The sum of all primes below two million is %ld\n", sum); return 0; }
void Menu::executePRIME() { int nMin = 0, nMax = 0; cout << "\t소수 구하기 함수를 선택하셨습니다. 범위를 입력해주세요." << endl; cout << "- 최소값 : "; cin >> nMin; cout << "- 최소값 : "; cin >> nMax; int cnt = getPrime(nMin, nMax); cout << "▶ 범위 " << nMin << " ~ " << nMax << " 사이의 소수의 개수는 " << cnt << "개 입니다." << endl; }
std::string execute(int variation) { switch (variation) { case 0: return to_string(bruteForce()); case 1: case -1: return to_string(getPrime()); default: return std::string("unavailable"); } return NULL; }
int main(int argc, char *argv[]) { char buf[128]; int k; unsigned int n; scanf("%s",buf); k = atoi(buf); if (k > MAXK) { printf("%i is too large\n",k); return 0; } init(); n = getPrime(k); printf("Prime %i is %u\n",k,n); return 0; }
int main(int argc, char *argv[]) { int n; printf("Please prime number to find: "); scanf("%d", &n); int *primes = findPrimes(); int nprime = getPrime(primes, n); printf("%d \n", nprime); free(primes); return 0; }
int main() { getPrime(); getFibPrime(); int n; /* fibonacci 在 index 為質數時,fib[index] 也會是質數,也就是 fibonacci prime 有一些特殊的狀況,這邊沒有處理到 index = 19 (prime[8])時,fib[index] 卻不為質數 */ fib[2] = 2; fib[3] = 3; while (scanf("%d", &n) != EOF) printf("%d\n", (int)fib[prime[n]]); return 0; }
int main() { int m = getPrime(); int n; while (scanf("%d", &n) && n) { int ans = 0, temp = n; if (n == INT_MIN)//-2147483648 { puts("31"); continue; } else if (n < 0) n *= -1; //因數分解 for (int i = 0; i < m&&n >= prime[i] * prime[i]; i++) { int count = 0; while (!(n%prime[i])) { count++; n /= prime[i]; } if (count) if (!ans) ans = count; else ans = gcd(ans, count); } if (n != 1)//還有剩下就是質數,其指數為 1 ans = 1; if (temp < 0)//負數處理 while (!(ans & 1)) ans /= 2; printf("%d\n", ans); } return 0; }
/* Rehashing the hash table whenever the load factor is greater than or equal to 75% PRE: hash - pointer to the header of the hash table load - int ( the load factor) POST: return the updated hash table (either the new one after rehash or the old one) */ HASH *rehash(HASH *hash, int load) { int i, count, success; int size = ((load*100)/hash->size); int flag = 0; DATA exc; DATA *temp; HASH *out = NULL; if( size >= 75) { printf("The hash table is going to rehash!\n"); printf(".\n"); printf("..\n"); printf("...\n"); size = getPrime(load*2); out = createHashTable(size); for (i = 0; i < hash->size; i++) { flag = 0; if(hash->table[i].card.name != NULL) { strcpy(exc.CCN, hash->table[i].card.CCN); exc.cvc = hash->table[i].card.cvc; exc.name = hash->table[i].card.name; strcpy(exc.exp,hash->table[i].card.exp); insertHash(out, exc); if (hash->table[i].list->count != 0) { count = hash->table[i].list->count; while(flag < count) { success = removeSNODE(hash->table[i].list, hash->table[i].list->head->dataPtr, (void**)&temp); if(success) { strcpy(exc.CCN, temp->CCN); exc.cvc = temp->cvc; exc.name = temp->name; strcpy(exc.exp, temp->exp); insertHash (out, exc); free(temp); } flag++; } } } free(hash->table[i].list); } free(hash->table); free(hash); hash = out; printf("DONE rehashing!\n"); } else printf("The efficiency is less than 75. No rehashing!\n"); return hash; }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Lab Required Functions - public //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bool Hash::insert(int x) { if (contains(x)) return false; int index = 0; std::cout << "Load factor: " << (float(active + 1) / float(m_size)) << std::endl; if ((float(active + 1) / float(m_size)) > 0.5) { Hash* tempList = new Hash(); Node* temp = m_front; for (int i = 0; i < m_size; i++) { if (temp->getValue() != -1) tempList->addBack(temp->getValue()); temp = temp->getNext(); }//for - gather hashed data tempList->addBack(x); //scrub hash scrub(); //reset active active = 0; //adjust list for new bucket size (after calculating next prime #) adjust(getPrime(m_size)); for ( ; !tempList->isEmpty(); ) { int val = tempList->pop(); for(int i = 0; i < m_size; i++) { temp = m_front; index = hash(val, i); for (int k = 0; k < index; k++) temp = temp->getNext(); if (temp->getValue() == -1) { temp->setValue(val); active++; //break loop i = m_size; } //else keep going while hash = -1 with true flag }//for each entry in the hash table (mod makes this cycle through every element) }//for - while tempList is not empty delete tempList; return true; }//if - rehash everything! else { //insert new value Node* temp = m_front; for(int i = 0; i < m_size; i++) { temp = m_front; index = hash(x, i); //std::cout << "Val: " << i << " hash: " << index << std::endl; for (int k = 0; k < index; k++) temp = temp->getNext(); if (temp->getValue() == -1) { //std::cout << "Inserting value at: " << i << std::endl; temp->setValue(x); active++; return true; } else if (temp->getValue() == x) i = m_size; // duplicate precaution - really should never happen //else keep going while hash = -1 with true flag }//for each entry in the hash table (mod makes this cycle through every element) } return false; }//insert
int main (int argc, char **argv){ int n = atoi(argv[1]); printf("%i", getPrime(n, 1, INT_MAX - 1)); }
/* * Print out the 10 001st prime and then exit */ int main() { int prime = getPrime(NUMBER_OF_PRIMES); printf("10,001st prime: %d\n", prime); }
int countPrimes(int n) { return getPrime(n-1); }