数组中的共素数对数

共素数对或互素数对是指GCD为1的数对。给定一个大小为n的数组,找出数组中共素数或互素数对的数目。

null

例如:

Input : 1 2 3Output : 3Here, Co-prime pairs are ( 1, 2), ( 2, 3),                          ( 1, 3)   Input :4 8 3 9Output :4Here, Co-prime pairs are  ( 4, 3), ( 8, 3),                          ( 4, 9 ), ( 8, 9 )  

方法: 使用两个循环,检查阵列的每一对。如果配对的Gcd为1,则递增计数器值,最后显示它。

C++

// C++ program to find
// number of co-prime
// pairs in array
#include <bits/stdc++.h>
using namespace std;
// function to check for gcd
bool coprime( int a, int b)
{
return (__gcd(a, b) == 1);
}
// Recursive function to
// return gcd of a and b
int numOfPairs( int arr[], int n)
{
int count = 0;
for ( int i = 0; i < n - 1; i++)
for ( int j = i + 1; j < n; j++)
if (coprime(arr[i], arr[j]))
count++;
return count;
}
// driver code
int main()
{
int arr[] = { 1, 2, 5, 4, 8, 3, 9 };
int n = sizeof (arr) / sizeof (arr[0]);
cout << numOfPairs(arr, n);
return 0;
}


JAVA

// Java program to find
// number of co-prime
// pairs in array
import java.io.*;
class GFG {
// Recursive function to
// return gcd of a and b
static int gcd( int a, int b)
{
// Everything divides 0
if (a == 0 || b == 0 )
return 0 ;
// base case
if (a == b)
return a;
// a is greater
if (a > b)
return gcd(a-b, b);
return gcd(a, b-a);
}
// function to check for gcd
static boolean coprime( int a, int b)
{
return (gcd(a, b) == 1 );
}
// Returns count of co-prime
// pairs present in array
static int numOfPairs( int arr[], int n)
{
int count = 0 ;
for ( int i = 0 ; i < n - 1 ; i++)
for ( int j = i + 1 ; j < n; j++)
if (coprime(arr[i], arr[j]))
count++;
return count;
}
// driver code
public static void main(String args[])
throws IOException
{
int arr[] = { 1 , 2 , 5 , 4 , 8 , 3 , 9 };
int n = arr.length;
System.out.println(numOfPairs(arr, n));
}
}
/* This code is contributed by Nikita Tiwari.*/


Python3

# Python 3 program to
# find number of co
# prime pairs in array
# Recursive function to
# return gcd of a and b
def gcd(a, b):
# Everything divides 0
if (a = = 0 or b = = 0 ):
return False
# base case
if (a = = b):
return a
# a is greater
if (a > b):
return gcd(a - b, b)
return gcd(a, b - a)
# function to check
# for gcd
def coprime(a, b) :
return (gcd(a, b) = = 1 )
# Returns count of
# co-prime pairs
# present in array
def numOfPairs(arr, n) :
count = 0
for i in range ( 0 , n - 1 ) :
for j in range (i + 1 , n) :
if (coprime(arr[i], arr[j])) :
count = count + 1
return count
# driver code
arr = [ 1 , 2 , 5 , 4 , 8 , 3 , 9 ]
n = len (arr)
print (numOfPairs(arr, n))
# This code is contributed by Nikita Tiwari.


C#

// C# program to find number of
// co-prime pairs in array
using System;
class GFG {
// Recursive function to
// return gcd of a and b
static int gcd( int a, int b)
{
// Everything divides 0
if (a == 0 || b == 0)
return 0;
// base case
if (a == b)
return a;
// a is greater
if (a > b)
return gcd(a-b, b);
return gcd(a, b-a);
}
// function to check for gcd
static bool coprime( int a, int b)
{
return (gcd(a, b) == 1);
}
// Returns count of co-prime
// pairs present in array
static int numOfPairs( int []arr, int n)
{
int count = 0;
for ( int i = 0; i < n - 1; i++)
for ( int j = i + 1; j < n; j++)
if (coprime(arr[i], arr[j]))
count++;
return count;
}
// driver code
public static void Main()
{
int []arr = { 1, 2, 5, 4, 8, 3, 9 };
int n = arr.Length;
Console.WriteLine(numOfPairs(arr, n));
}
}
//This code is contributed by Anant Agarwal.


PHP

<?php
// PHP program to find
// number of co-prime
// pairs in array
// Recursive function to
// return gcd of a and b
function __gcd( $a , $b )
{
// Everything divides 0
if ( $a == 0 or $b == 0)
return 0;
// base case
if ( $a == $b )
return $a ;
// a is greater
if ( $a > $b )
return __gcd( $a - $b , $b );
return __gcd( $a , $b - $a );
}
// function to check for gcd
function coprime( $a , $b )
{
return (__gcd( $a , $b ) == 1);
}
// Recursive function to
// return gcd of a and b
function numOfPairs( $arr , $n )
{
$count = 0;
for ( $i = 0; $i < $n - 1; $i ++)
for ( $j = $i + 1; $j < $n ; $j ++)
if (coprime( $arr [ $i ], $arr [ $j ]))
$count ++;
return $count ;
}
// Driver code
$arr = array (1, 2, 5, 4, 8, 3, 9);
$n = count ( $arr );
echo numOfPairs( $arr , $n );
// This code is contributed by anuj_67.
?>


Javascript

<script>
// Javascript program to find
// number of co-prime
// pairs in array
// Recursive function to
// return gcd of a and b
function gcd(a, b)
{
// Everything divides 0
if (a == 0 || b == 0)
return 0;
// base case
if (a == b)
return a;
// a is greater
if (a > b)
return gcd(a - b, b);
return gcd(a, b - a);
}
// Function to check for gcd
function coprime(a, b)
{
return (gcd(a, b) == 1);
}
// Returns count of co-prime
// pairs present in array
function numOfPairs(arr, n)
{
let count = 0;
for (let i = 0; i < n - 1; i++)
for (let j = i + 1; j < n; j++)
if (coprime(arr[i], arr[j]))
count++;
return count;
}
// Driver code
let arr = [ 1, 2, 5, 4, 8, 3, 9 ];
let n = arr.length;
document.write(numOfPairs(arr, n));
// This code is contributed by susmitakundugoaldanga
</script>


输出:

17

本文由 迪比恩杜·罗伊·乔杜里 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享