Định lý Midy là một câu lệnh được sử dụng để khai triển thập phân của các số được ký hiệu là n / p, trong đó n là bất kỳ số nào và p là số nguyên tố và a / p có một số thập phân lặp lại với dấu chấm chẵn.
Trong Định lý Midy mở rộng, phần lặp lại được chia thành m chữ số, khi đó tổng của chúng là bội số của 10m - 1.
Chương trình minh họa Định lý Midy mở rộng:
Ví dụ
#includeusing namespace std; string findDecimalValue (int num, int den) {string res; bản đồ không có thứ tự mp; int rem =num% den; while ((rem! =0) &&(mp.find (rem) ==mp.end ())) {mp [rem] =res.length (); rem =rem * 10; int part =rem / den; res + =to_string (part); rem =rem% den; } return (rem ==0)? "-1":res.substr (mp [rem]);} bool isPrime (int n) {for (int i =2; i <=n / 2; i ++) if (n% i ==0) return false; return true;} void ExtendedMidysAlgo (string str, int n, int m) {if (! isPrime (n)) {cout <<"Mẫu số không phải là số nguyên tố, do đó định lý Extended Midy không áp dụng được"; trở về; } int l =str.length (); int part1 =0, part2 =0; if (l% 2 ==0 &&l% m ==0) {int part [m] ={0}, sum =0, res =0; for (int i =0; i Đầu ra -
Số thập phân lặp lại =0588235294117647588 2352 9411 7647