Для больши́х N есть формула

Поэтому при достаточно больши́х N сумму ограниченного гармонического ряда циклом считать бессмысленно. Но можете сами проверить что к чему:
using System;
namespace New_Project
{
public static class Program
{
public static void Main()
{
ulong i, N;
double s, S;
while (true)
{
s = 0.0;
Console.Write("N: ");
N = ulong.Parse(Console.ReadLine());
for (i = N; i > 0; --i) s += 1.0 / i;
Console.Write($"S = {s}");
S = Math.Log(N)+0.57721566490153286+0.5/N-
1.0/(12.0*N*N)+1.0/(120.0*N*N*N*N)-
1.0/(252.0*N*N*N*N*N*N);
Console.WriteLine(" (" + S + ")");
}
}
}
}

Для относительно небольших N всё же лучше сделать программу с циклом:
using System;
namespace New_Project
{
public static class Program
{
public static void Main()
{
double e = 1.0, i, N, s;
while (true)
{
s = 0.0;
Console.Write("N = ");
N = double.Parse(Console.ReadLine());
for (i = N; i > 0.0; i -= e) s += e / i;
Console.WriteLine($"S = {s}");
}
}
}
}
