aboutsummaryrefslogtreecommitdiff
path: root/challenge-150/deadmarshal/d/ch2.d
blob: 130d5b19740186471ce0a9c9aa697c495cfecd7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import std.stdio:write;
import std.algorithm:uniq;
import std.array:array;

ulong[] prime_factors(ulong n)
{
  ulong c = 2;
  ulong[] arr;
  while(n > 1)
  {
    if(n % c == 0)
    {
      arr ~= c;
      n /= c;
    }
    else c++;
  }
  return arr;
}

void square_free_integers()
{
  ulong i = 1;
  do{
    ulong[] primes = prime_factors(i);
    ulong prime = primes.uniq().array.length;
    if(primes.length - prime == 0) write(i, ' ');
    i++;
  }while(i <= 500);
}

void main()
{
  square_free_integers();
}