"""Original proper-divisor balances; matching opaque PNG goes to cwd.""" from pathlib import Path import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt def divisors(n): return [d for d in range(1,n) if n%d==0] def main(): cases=[6,8,12,28] palette=["#bfd7e4","#83b2ca","#528db0","#356687","#274b66"] fig,ax=plt.subplots(figsize=(11.8,5.2),dpi=100,facecolor="white") fig.suptitle("Compare the sum of proper divisors with the number",fontsize=16) for row,n in enumerate(cases): ds=divisors(n);total=sum(ds);left=0 for i,d in enumerate(ds): ax.barh(row,d/n,left=left,color=palette[i],edgecolor="white",height=.56) ax.text(left+d/(2*n),row,str(d),ha="center",va="center",fontsize=11,color="#122631" if i<3 else "white") left+=d/n kind="perfect" if total==n else "deficient" if total