Facebook
From Sludgy Marmoset, 3 Years ago, written in Plain Text.
This paste is a reply to Untitled from Gamboge Finch - view diff
Embed
Download Paste or View Raw
Hits: 73
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <thread>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9. const int N = 999;
  10. const int l_watkow = 4;
  11.  
  12. unsigned char tab[N][N][3];
  13.  
  14. int ulam_get_map(int x, int y, int n)
  15. {
  16.     x -= (n-1)/2;
  17.     y -= n/2;
  18.  
  19.     int mx = abs(x), my = abs(y);
  20.     int l = 2*max(mx, my);
  21.     int d = y >= x ? l*3 + x + y : l - x - y;
  22.  
  23.     return pow(l-1,2)+d;
  24. }
  25.  
  26. int isprime(int n)
  27. {
  28.     for (int p = 2; p*p <= n; p++)
  29.         if (n % p == 0) return 0;          
  30.     return n > 2;
  31. }
  32.  
  33.  
  34. int main()
  35. {
  36.         auto ulam=[](int x, int y)
  37.         {
  38.     for (int i = x; i < x + 0.5*N; i++)
  39.         for (int j = y; j < y + 0.5*N; j++)
  40.                 if (isprime(ulam_get_map(i, j, N)))
  41.                 for (int k=0;k<3;k++) tab[i][j][k] = 0;
  42.                 else
  43.                 for (int k=0;k<3;k++) tab[i][j][k] = 255;
  44.         };
  45.    vector<thread> v;
  46.  
  47.    for (int i = 0; i < l_watkow; i++)
  48.    {
  49.                  int x = 2*N*(i%2)/l_watkow;
  50.          int y = 2*N*int(i/2)/l_watkow;
  51.                  v.push_back(thread(ulam, x, y));
  52.    }
  53.  
  54.    for (int i = 0; i < l_watkow; i++) v[i].join();
  55.    
  56.    FILE *fp= fopen("39247_lab4_poprawione.ppm","wb");
  57.    fprintf(fp,"P6\n %s\n %d\n %d\n %d\n","# ",N,N,255);
  58.    for (int i = 0; i < N; i++)
  59.       for (int j = 0; j < N; j++)
  60.          fwrite(tab[i][j],1,3,fp);
  61.    fclose(fp);
  62.    return 0;
  63. }

Replies to Re: Untitled rss

Title Name Language When
Re: Re: Untitled Walloping Elephant text 3 Years ago.
Re: Re: Untitled Ample Parrot text 3 Years ago.