Numere perfecte in fisier text

Să scrie în fişierul perfect.out, pe o linie, separate prin câte un spaţiu, toate numerele perfecte din şirul dat (dacă nu există astfel de numere, se va se va afişa mesajul “NU EXISTĂ NUMERE PERFECTE”). Un număr este perfect dacă este egal cu suma divizorilor lui pozitivi, exceptându-l pe el însuşi, de exemplu: 6 = 1+2+3

#include<fstream.h>
void main()
{
int n,nr,g=0,s,d,i;
cout<<"n=";cin>>n;
fstream f("perfecte.out",ios::out);
for(i=1;i<=n;i++)
{
s=0;
cin>>nr;
for(d=1;d<=nr/2;d++)
if(nr%d==0) s=s+d;
if(s==nr)
{
f<<nr<<" ";
g=1;
}
}
if(g==0) f<<"nu am gasit numere";
f.close();
}