How can I disable 'factory reset' function?
Yes, you can disable Settings if you have root.  From a root shell or terminal:

pm disable com.android.settings


Run it again, changing disable to enable, when you want to use it later.