#include <iostream>
#include <stdio.h>
#include <math.h>
#include <thread>
#include <vector>
using namespace std;
const int N = 999;
const int l_watkow = 4;
unsigned char tab[N][N][3];
int ulam_get_map(int x, int y, int n)
{
x -= (n-1)/2;
y -= n/2;
int mx = abs(x), my = abs(y);
int l = 2*max(mx, my);
int d = y >= x ? l*3 + x + y : l - x - y;
return pow(l-1,2)+d;
}
int isprime(int n)
{
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)
{
for (int i = 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<thread> 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();
FILE *fp= fopen("39247_lab4_poprawione.ppm","wb");
fprintf(fp,"P6\n %s\n %d\n %d\n %d\n","# ",N,N,255);
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
fwrite(tab[i][j],1,3,fp);
fclose(fp);
return 0;
}
Replies to Re: Untitled
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}