#!/usr/bin/env python
# -*- coding: latin-1 -*-
# (c) Olivier Pirson ------ DragonSoft
# http://www.opimedia.be/DS/

import DSPython.factors as factors  # cf. http://www.opimedia.be/DS/DSPython/

# Génère dans un dictionnaire la liste des arcs du graphe
d = {}
d[1] = 1
for n in range(2, 51):
    s = n
    while s >= n:
        d[s] = factors.divisors_sum_odd(factors.primaries(s))
        s = d[s]

# Envoye sur la sortie standard le contenu du fichier .dot
print("""digraph "sigma odd" {
  size="7, 10";
  margin="0";
  ranksep=".2";
  nodesep=".2";
  rankdir="LR";
  ratio="fill";
""")
for n in d:
    print('  {0} -> {1};'.format(n, d[n]))
print('}')
