Slovákov na Google najviac zaujímalo čo je karma, Brexit a prvočíslo. A hry
Diskusia k článku: Slovákov na Google najviac zaujímalo čo je karma, Brexit a prvočíslo. A hry
Prispievajte do diskusií ako
prihlásený užívateľ.
Komentár, na ktorý odpovedáte:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
prvocislo 1/2
Od: developer C
|
Pridané:
2016-12-14 23:10:28
#include <pthread.h> #include <stdbool.h> #include <stdio.h> #include <time.h>
struct par_s{int fr; int to; int ret;};
bool is_prime(int n){ for(int i=2;i<n;i++){if(i*i> n) return true;if(n%i==0) return false;} return true;}
void *thrun(void *par){struct par_s *p; p = (struct par_s*)par;
int fr = p->fr, to = p->to;int z=0; for(int n=fr;n<=to;n++){if(is_prime(n)) {z=n;}}p->ret = z; return NULL;}
int main(){int cpu = 16, frm = 2, max = 10000000, ton = max/cpu;pthread_t th[cpu];struct par_s pr[cpu];clock_t te, ts = clock();int t=time(NULL);
for(int i=0;i<cpu;i++) {if(ton > max) ton=max;pr[i].fr = frm; pr[i].to = ton;frm = ton + 1; ton = ton + (max/cpu);}
for(int i=0;i<cpu;i++) pthread_create(&th[i],NULL,thrun,&pr[i]);
for(int i=0;i<cpu;i++) pthread_join(th[i],NULL);
|