首先,介绍两个c++中好用的函数:gcd()、next_permutation()
gcd()
直接用gcd(x,y)就可以计算x与y的最小的公约数
next_permutation()
用next_permutation(a,a+8)就可以计算数组a的全排列
参考代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[8]={1,2,3,4,5,6,8,9};
int su=0;
do
{
int x=a[0]*10+a[1];
int y=a[2]*10+a[3];
int z=a[4]*10+a[5];
int w=a[6]*10+a[7];
if(x<y&&y<z&&z<w)
if(gcd(w,gcd(z,gcd(x,y)))==1)su++;
}while(next_permutation(a,a+8));
cout<<su;
}