Computer >> Máy Tính >  >> Lập trình >> C ++

Định lý Midy mở rộng trong C ++

Đị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ụ

 #include  using 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