{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-05-26T00:16:20.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-05-26T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":1750,"title":"Modular multiplicative inverse","description":"Modular multiplicative inverse is used for _The Chinese Remainder Theorem_ and _RSA algorithm_. You can visit \u003chttp://en.wikipedia.org/wiki/Modular_multiplicative_inverse Wikipedia.\u003e\r\n\r\n*Normal Modulus* \r\n\r\nX = M (mod Y) \r\n\r\nYou can solve that with M = mod(X,Y)\r\n\r\n*Inverse Modulus*\r\n\r\nX.B = M (mod Y)\r\n\r\ngiven X,M,Y calculate B\r\n\r\nB = inverse_modulus(X,M,Y)\r\n\r\n","description_html":"\u003cp\u003eModular multiplicative inverse is used for \u003ci\u003eThe Chinese Remainder Theorem\u003c/i\u003e and \u003ci\u003eRSA algorithm\u003c/i\u003e. You can visit \u003ca href = \"http://en.wikipedia.org/wiki/Modular_multiplicative_inverse\"\u003eWikipedia.\u003c/a\u003e\u003c/p\u003e\u003cp\u003e\u003cb\u003eNormal Modulus\u003c/b\u003e\u003c/p\u003e\u003cp\u003eX = M (mod Y)\u003c/p\u003e\u003cp\u003eYou can solve that with M = mod(X,Y)\u003c/p\u003e\u003cp\u003e\u003cb\u003eInverse Modulus\u003c/b\u003e\u003c/p\u003e\u003cp\u003eX.B = M (mod Y)\u003c/p\u003e\u003cp\u003egiven X,M,Y calculate B\u003c/p\u003e\u003cp\u003eB = inverse_modulus(X,M,Y)\u003c/p\u003e","function_template":"function B = inverse_modulus(X,M,Y)\r\n  y = x;\r\nend","test_suite":"%%\r\nX = 2;\r\nM = 1;\r\nY = 5;\r\ny_correct = 3;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n%%\r\nX = 5;\r\nM = 1;\r\nY = 6;\r\ny_correct = 5;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%%\r\nX = 2;\r\nM = 1;\r\nY = 7;\r\ny_correct = 4;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%%\r\nX = [2 5 2];\r\nM = [1 1 1];\r\nY = [5 6 7];\r\ny_correct = [3 5 4];\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%% this example is from wikipedia\r\nX = 3;\r\nM = 1;\r\nY = 11;\r\ny_correct = 4;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%%\r\nX = 3;\r\nM = 2;\r\nY = 11;\r\ny_correct = 8;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n%% \r\nX = [3 5 7];\r\nM = [1 2 3];\r\nY = [5 6 13];\r\ny_correct = [2 4 6];\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":8703,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":"2013-07-25T15:56:03.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-07-25T15:54:19.000Z","updated_at":"2026-05-27T04:11:51.000Z","published_at":"2013-07-25T15:54:24.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eModular multiplicative inverse is used for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThe Chinese Remainder Theorem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRSA algorithm\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. You can visit\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Modular_multiplicative_inverse\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNormal Modulus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eX = M (mod Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou can solve that with M = mod(X,Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInverse Modulus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eX.B = M (mod Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003egiven X,M,Y calculate B\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB = inverse_modulus(X,M,Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"problems":[{"id":1750,"title":"Modular multiplicative inverse","description":"Modular multiplicative inverse is used for _The Chinese Remainder Theorem_ and _RSA algorithm_. You can visit \u003chttp://en.wikipedia.org/wiki/Modular_multiplicative_inverse Wikipedia.\u003e\r\n\r\n*Normal Modulus* \r\n\r\nX = M (mod Y) \r\n\r\nYou can solve that with M = mod(X,Y)\r\n\r\n*Inverse Modulus*\r\n\r\nX.B = M (mod Y)\r\n\r\ngiven X,M,Y calculate B\r\n\r\nB = inverse_modulus(X,M,Y)\r\n\r\n","description_html":"\u003cp\u003eModular multiplicative inverse is used for \u003ci\u003eThe Chinese Remainder Theorem\u003c/i\u003e and \u003ci\u003eRSA algorithm\u003c/i\u003e. You can visit \u003ca href = \"http://en.wikipedia.org/wiki/Modular_multiplicative_inverse\"\u003eWikipedia.\u003c/a\u003e\u003c/p\u003e\u003cp\u003e\u003cb\u003eNormal Modulus\u003c/b\u003e\u003c/p\u003e\u003cp\u003eX = M (mod Y)\u003c/p\u003e\u003cp\u003eYou can solve that with M = mod(X,Y)\u003c/p\u003e\u003cp\u003e\u003cb\u003eInverse Modulus\u003c/b\u003e\u003c/p\u003e\u003cp\u003eX.B = M (mod Y)\u003c/p\u003e\u003cp\u003egiven X,M,Y calculate B\u003c/p\u003e\u003cp\u003eB = inverse_modulus(X,M,Y)\u003c/p\u003e","function_template":"function B = inverse_modulus(X,M,Y)\r\n  y = x;\r\nend","test_suite":"%%\r\nX = 2;\r\nM = 1;\r\nY = 5;\r\ny_correct = 3;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n%%\r\nX = 5;\r\nM = 1;\r\nY = 6;\r\ny_correct = 5;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%%\r\nX = 2;\r\nM = 1;\r\nY = 7;\r\ny_correct = 4;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%%\r\nX = [2 5 2];\r\nM = [1 1 1];\r\nY = [5 6 7];\r\ny_correct = [3 5 4];\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%% this example is from wikipedia\r\nX = 3;\r\nM = 1;\r\nY = 11;\r\ny_correct = 4;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n\r\n%%\r\nX = 3;\r\nM = 2;\r\nY = 11;\r\ny_correct = 8;\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))\r\n\r\n%% \r\nX = [3 5 7];\r\nM = [1 2 3];\r\nY = [5 6 13];\r\ny_correct = [2 4 6];\r\nassert(isequal(inverse_modulus(X,M,Y),y_correct))","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":8703,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":"2013-07-25T15:56:03.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-07-25T15:54:19.000Z","updated_at":"2026-05-27T04:11:51.000Z","published_at":"2013-07-25T15:54:24.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eModular multiplicative inverse is used for\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThe Chinese Remainder Theorem\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRSA algorithm\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. You can visit\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Modular_multiplicative_inverse\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNormal Modulus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eX = M (mod Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou can solve that with M = mod(X,Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInverse Modulus\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eX.B = M (mod Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003egiven X,M,Y calculate B\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eB = inverse_modulus(X,M,Y)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"errors":[],"facets":[[],[{"value":"medium","count":1,"selected":false}]],"term":"tag:\"modular multiplicative\"","page":1,"per_page":50,"sort":"map(difficulty_value,0,0,999) asc"}}