>>38
>[奇数,奇数],[奇数,偶数]と設定して、偶数を余らせる。

この作業が行うと、最後の2のグループでの対応付けを行う際、r側の偶数のいくつかは奇素数グループでの対応付けに用いているため、使えません。

昇順での対応付けならば、p側の偶数の個数とr側の偶数の個数が等しいことを利用して、2の倍数グループでの対応付けは少なくともできるでしょうね

しかし、降順の場合、上位の奇素数グループでの対応付けで、
p側の偶数を余らせるために、r側の偶数とp側の奇数を対応付けようとすることから、
別の奇素数グループの対応付けで、p側の偶数をr側の奇数に対応付ける調整がない限り、
最後の2のグループでの対応付けにおいては、残っているr側の偶数の個数が残っているp側の偶数の個数を下回ります。