- 算法思想
定义两个变量,一个存放比较的数字的对数,一个存放其中互素的对数;通过两个循环遍历小于等于N的所有的互异正整数,调用最大公因数函数判断两个互异的数是否互素,如果两个互异的正整数最大共因数是1,表明这两个数互素。
- 运行时间
O(N²logN)
- 算法实现
unsigned int Gcd(unsigned int M, unsigned int N)
{
unsigned int Rem = 0;
while (N > 0)
{
Rem = M%N;
M = N;
N = Rem;
}
return M;
}
double PerOfPrimePairs(int N)
{
int Rel = 0, Tot = 0;
int i, j;
for (i = 1; i <= N; i++)
for (j = i + 1; j <= N; j++)
{
Tot++;
if (Gcd(i, j) == 1)
Rel++;
}
return (double)Rel / Tot;
}