現在、学校で出された課題をやっています。

1+2+3+・・・+nの和が500より小さい場合における、nとそのときの和を求めるプログラムを作成せよ。
という課題なのですが、試しに

#include<iostream.h>
#include<conio.h>

int main(void)
{
cout << "1+2+3+・・・+nの和が500より小さい場合における、nとその時の和を求めます。\n";
int m=0;
for(int n=1;m<500;n++){
m=m+n;
}
cout << "500より小さい場合のnは" << n-1 << "\n";
cout << "500より小さい場合の和は" << m-n << "\n";
getch();
return(0);
}
と組んでみたのですが500より小さい場合のnが答えと違ってしまいます・・・。
試しに、
cout << "500より小さい場合のnは" << n-1 << "\n";
cout << "500より小さい場合の和は" << m-n << "\n";
も括弧でくくって途中の経過を確認したのですが、その時は正しくnが表示されます。
なぜなのかよく分からないので、どなたか教えていただけないでしょうか?