Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <omp.h>
- #include <math.h>
- #include <stdlib.h>
- #include <stdio.h>
- #define N 625
- #define S (int)sqrt(N)
- #define M N
- int main(int argc, char *argv[])
- {
- long int a[S+1];
- long int podzielniki[S+1];
- long int pierwsze[M];
- long int i,k;
- long int liczba,reszta,suma,lpmax;
- long int lpodz=0;
- long int llpier=0;
- double s,kkk;
- for(i=2;i<=S;i++) a[i]=1;
- for(i=2;i<=S;i++){
- if(a[i]==1){
- pierwsze[llpier++]=i;
- podzielniki[lpodz++]=i;
- for(k=i*i;k<=S;k+=i) a[k]=0;
- }
- }
- /*printf("liczba l pierwszych %ld \n", llpier);
- printf("liczba podzielnikow %ld \n", lpodz);
- printf("najwieksza liczba pierwsza %ld \n", pierwsze[llpier-1]);*/
- s=omp_get_wtime();
- for(liczba = S+1; liczba<=N; liczba++){
- for(k=0; k<lpodz;k++){
- reszta=liczba%pierwsze[k];
- if(reszta==0) break;
- }
- if(reszta!=0){
- pierwsze[llpier++]=liczba;
- }
- }
- kkk=omp_get_wtime();
- printf("liczba l pierwszych %ld \n", llpier);
- suma=0;
- lpmax=0;
- for(i=0;i<llpier;i++){
- suma=suma+pierwsze[i];
- if(pierwsze[i]>lpmax) lpmax=pierwsze[i];
- }
- printf("najwieksza liczba pierwsza %ld %ld \n", lpmax,pierwsze[llpier-1]);
- printf("suma liczb pierwszych %ld \n", suma);
- /*for(i=0;i<llpier;i++){
- printf("%ld \n", pierwsze[i]);
- if(i%10==0) printf("\n");
- }*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement