It sounds like you need some refactoring. However, to answer your specific question, I would have the Sum method contain a switch statement that would call three different private methods like so:
public int Sum()
{
switch(number)
{
case 1:
Job1();
break;
case 2:
Job2();
break;
case 3:
Job3();
break;
default:
Console.WriteLine("Error here - fix this");
break;
}
}
private int Job1()
{
}
private int Job2()
{
}
private int Job3()
{
}
I would not do the three different constructors option becuase of a couple reasons. First, constructors are for setting up your class instance, not for changing how it will work. Second, that will not be extensible for when you have a fourth job type. Third, you can only have a different constructor if it has a different signature (no arguments, one int argument, one bool argument, etc.) Having the same type of signature for three different constructors would not work. Finally, a class should be behave in an expected manner. If you are changing how the class behaves on instantiation based upon a passed-in value, you are going to cause problems in your code.
My overall advice would be to look at the SOLID principles (especially SRP) and see how you might refactor your application to better conform to these. I don't know your overall design, but I'm assuming you should probably have three different public methods. Then each could return the data as expected. However, if your use case defines that you have one method that does three different things this way, the way I outlined above is probably the best way of doing things.