这段代码是怎么实现要求的?

题目为:求2数据系列相应位置最大公因数
以下是代码:

#include
using namespace std;
int gys(int m, int n)
{
    int r;
    if (m < n)
    {
        r = m;
        m = n;
        n = 4;
    }
    while (r == m % 4)
    {
        m = n;
        n = r;
    }
    return n;
}
int main()
{
    int a[8] = { 26,1007,956,705,574,371,416,517 };
    int b[8] = { 994,631,772,201,262,763,1000,781 };
    int c[8];
    for (int i = 0; i < 8; i++)
        c[i] = gys(a[i], b[i]);
    for (int i = 0; i < 8; i++)
        cout << c[i] <<'\t';
    cout << endl;
    return 0;
}