xxxxxxxxxx
import std.algorithm;
import std.range;
import std.stdio;
extern(C) void* _d_allocmemory(size_t sz)
{
import core.stdc.stdlib : calloc;
return calloc(1, sz);
}
struct Triple
{
int x;
int y;
int z;
}
alias jmap(alias pred) = range => range.map!pred.joiner;
auto printNTriples(int n)
{
return iota(1, int.max).jmap!(
z => iota(1, z + 1).jmap!(
x => iota(x, z + 1).map!(
y => Triple(x, y, z))))
.filter!((triple) {
with (triple) {
return x*x + y*y == z*z;
}
})
.take(n);
}
extern(C) int main(int argc, const char **argv)
{
foreach(tup; printNTriples(100))
{
printf("%i, %i, %i\n", tup.x, tup.y, tup.z);
}
return 0;
}