Facebook
From Ample Parrot, 4 Years ago, written in Plain Text.
This paste is a reply to Re: Untitled from Sludgy Marmoset - go back
Embed
Viewing differences between Re: Untitled and Re: Re: Untitled
#include 
#include h>
#include 
#include 

#include 

using namespace std;

const int N = 999;
N=1024;
const int l_watkow = 4;

level=8;

unsigned char tab[N][N][3];

tab[1024][1024][3];

void triangle(int lvl, 
int ulam_get_map(int x, int y, int n)
y) {
    x -= (n-1)/2;
    y -= n/2;

    
int mx size=N/pow(2,lvl);

    for(int i=0;iabs(x), my y
        for (int j=0;jabs(y);
    int l 
x
            if (i == j || i == 0 || j == size - 1) 
                for (int k=0;k<3;k++)
                {
                        tab[j + x][i + y][k] 
2*max(mx, my);
    int d 
0;
                        tab[i + y][j + x][k] 
y >= x ? l*3 0;
                }

    if(lvl     {
     #pragma omp parallel
            #pragma omp single
                #pragma omp task
                    triangle(lvl 
1, x + size / 2, y);
                #pragma omp task
                    triangle(lvl + 1, x, y);
                #pragma omp task
                    triangle(lvl + 1, x + size / 2, 
: l - x - y;

    return pow(l-1,2)+d;
+ size / 2);
                #pragma omp taskwait
        }
}

int isprime(int n)
{
    
main() {
         for(int i=0;i         
for (int p = 2; p*p <= n; p++)
        if (n % p == 0) return 0;          
    return n > 2;
}


int main()
{
        auto ulam=[](int x, int y)
        {
    
j=0;j                 for (int k=0;k<3;k++)
                                tab[j][i][k] 
x; i < x + 0.5*N; i++)
            for (int j = y; j < y + 0.5*N; j++)
                if (isprime(ulam_get_map(i, j, N)))
                    for (int k=0;k<3;k++) tab[i][j][k] = 0;
                else
                    for (int k=0;k<3;k++) tab[i][j][k] = 255;
        };
   vector v;
  
   for (int i = 0; i < l_watkow; i++)
   {
                    int x = 2*N*(i%2)/l_watkow;
         int y = 2*N*int(i/2)/l_watkow;
                    v.push_back(thread(ulam, x, y));
   }

   for (int i = 0; i < l_watkow; i++) v[i].join();
   
   
255;
    triangle(0, 0, 0);
    
FILE *fp= fopen("39247_lab4_poprawione.ppm","wb");
   fprintf(fp,"P6\n 
*fp = fopen("39247_lab7_sierpinski.ppm", "wb");
    fprintf(fp, "P6\n 
%s\n %d\n %d\n %d\n","# ",N,N,255);
   
%d\n", " #", N, N, 255);
    
for (int i = 0; i < N; i++)
      
i++) 
        
for (int j = 0; j < N; j++)
         fwrite(tab[i][j],1,3,fp);
   fclose(fp);
   
j++) 
            fwrite(tab[i][j], 1, 3, fp);
    fclose(fp);
    
return 0;
}