My idea is to combine the polyglossia
package, and the newcomputermodern
package which supplies Russian letters with different shapes and weights quite consistent with Computer Modern fonts. You could use the following codes.
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{russian}
\newfontfamily\russianfont[Script=Cyrillic,Language=Russian,
ItalicFont={NewCM10-Italic.otf}, BoldFont={NewCM10-Bold.otf},
BoldItalicFont={NewCM10-BoldItalic.otf}]{NewCM10-Regular.otf}
\newfontfamily\russianfontsf[Script=Cyrillic,Language=Russian,
ItalicFont={NewCMSans10-Oblique.otf}, BoldFont={NewCMSans10-Bold.otf},
BoldItalicFont={NewCMSans10-BoldOblique.otf}]{NewCMSans10-Regular.otf}
\newfontfamily\russianfonttt[Script=Cyrillic,Language=Russian,
ItalicFont={NewCMMono10-Italic.otf}, BoldFont={NewCMMono10-Bold.otf},
BoldItalicFont={NewCMMono10-BoldOblique.otf}]{NewCMMono10-Regular.otf}
\begin{document}
Mathematical formulas
{\itshape\textrussian{Математические формулы}}
Mathematical formulae
{\bfseries\textrussian{Математические формулы}}
Mathematical formulas
{\itshape\bfseries\textrussian{Математические формулы}}
Mathematical formulae
{\sffamily\textrussian{Математические формулы}}
Mathematical formulas
{\ttfamily\textrussian{Математические формулы}}
\end{document}
Note that you needn't install these otf fonts on your computer which have been included in the newcomputermodern
package. Its compiled result is as follows.

Also, if you want the main(English) language to be also New Computer Modern fonts which are almost the same as Computer Modern fonts, the inputs would be easier and you could use the following codes.
\documentclass{article}
\usepackage[regular]{newcomputermodern}
\begin{document}
Mathematical formulas
{\itshape Математические формулы}
Mathematical formulae
{\bfseries Математические формулы}
Mathematical formulas
{\itshape\bfseries Математические формулы}
Mathematical formulae
{\sffamily Математические формулы}
Mathematical formulas
{\ttfamily Математические формулы}
\end{document}
\usepackage[regular]{newcomputermodern}
could also be replaced by \usepackage[olddefault]{fontsetup}
. Its compiled result is the same as above.
By the way, the newcomputermodern
package also includes text letters in other language such as greek and so on, and the way to invoke is similar as above.
fontspec
.\usepackage{libertine}
for example. But there are dozens of questions around already.\usepackage[T1,T2A]{fontenc}
then all hyphenation will be wrong.