Most likely, Photoshop uses a color profile for converting RGB to CMYK.
If you want to do the same with a .NET language on Windows, then there's an API for it:
float[] colorValues = new float[4];
colorValues[0] = c / 255f;
colorValues[1] = m / 255f;
colorValues[2] = y / 255f;
colorValues[3] = k / 255f;
System.Windows.Media.Color color = Color.FromValues(colorValues,
new Uri(@"C:\Users\me\Documents\ISOcoated_v2_300_eci.icc"));
System.Drawing.Color rgbColor = System.Drawing.Color.FromArgb(color.R, color.G, color.B);
Note that two different Color classes from two different namespaces are used. And you probably need to add the PresentationCore DLL as a reference.
In this particular case, the ISO Coated v2 300% (ECI) profile is used. It can be downloaded from the downloads section of eci.org. It's part of a bigger ZIP file containing several profiles.
If you need to convert a complete image from CMYK to RGB, there are special classes in the same namespace that use a color profile as well.
There's a nice little online app for testing the CMYK color conversion with a color profile.