给定数字N。任务是找到从1到N的互质对(a,b)的数量,以使它们的乘积(a * b)等于N。
注意:如果gcd(a,b)= 1,则说对(a,b)是互质的。
例子:
Input: N = 120
Output: No. of co-prime pairs = 3
(3, 40)
(5, 24)
(8, 15)
Input: N= 250
Output: No. of co-prime pairs = 3
(2, 125)
方法:假设该对中的元素应互为互质。设一个素数对为(a,b) ,
给定, a * b = N。
所以,
所以这个想法是从1到并检查i和(N / i)是否互质,以及i *(N / i)=N。如果是,则计算这样的对。
下面是上述方法的实现:
C++
// C++ program to count number of Co-prime pairs
// from 1 to N with product equals to N
#include
using namespace std;
// Function to count number of Co-prime pairs
// from 1 to N with product equals to N
void countCoprimePairs(int n)
{
int count = 0;
cout << "The co- prime pairs are: " << endl;
// find all the co- prime pairs
// Traverse from 2 to sqrt(N) and check
// if i, N/i are coprimes
for (int i = 2; i <= sqrt(n); i++) {
// check if N is divisible by i,
// so that the other term in pair i.e. N/i
// is integral
if (n % i == 0) {
// Check if i and N/i are coprime
if (__gcd(i, (n / i)) == 1) {
// Display the co- prime pairs
cout << "(" << i << ", " << (n / i) << ")\n";
count++;
}
}
}
cout << "\nNumber of coprime pairs : " << count;
}
// Driver code
int main()
{
int N = 120;
countCoprimePairs(N);
return 0;
}
Java
// Java program to count number of Co-prime pairs
// from 1 to N with product equals to N
import java.io.*;
public class GFG {
// Recursive function to return gcd of a and b
static int __gcd(int a, int b)
{
// Everything divides 0
if (a == 0)
return b;
if (b == 0)
return a;
// 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 count number of Co-prime pairs
// from 1 to N with product equals to N
static void countCoprimePairs(int n)
{
int count = 0;
System.out.println( "The co- prime pairs are: ");
// find all the co- prime pairs
// Traverse from 2 to sqrt(N) and check
// if i, N/i are coprimes
for (int i = 2; i <= Math.sqrt(n); i++) {
// check if N is divisible by i,
// so that the other term in pair i.e. N/i
// is integral
if (n % i == 0) {
// Check if i and N/i are coprime
if (__gcd(i, (n / i)) == 1) {
// Display the co- prime pairs
System.out.print( "(" +i + ", " + (n / i) + ")\n");
count++;
}
}
}
System.out.println("\nNumber of coprime pairs : " + count);
}
// Driver code
public static void main (String[] args) {
int N = 120;
countCoprimePairs(N);
}
}
// This code is contributed by shs..
Python 3
# Python program to count number
# of Co-prime pairs from 1 to N
# with product equals to N
# import everything from math lib
from math import *
# Function to count number of
# Co-prime pairs from 1 to N
# with product equals to N
def countCoprimePairs(n) :
count = 0
print("The co-prime pairs are: ")
# find all the co- prime pairs
# Traverse from 2 to sqrt(N) and
# check if i, N//i are coprimes
for i in range(2, int(sqrt(n)) + 1) :
# check if N is divisible by i,
# so that the other term in pair
# i.e. N/i is integral
if n % i == 0 :
# Check if i and N/i are coprime
if gcd(i, n // i) == 1 :
# Display the co- prime pairs
print("(", i,",", (n // i),")")
count += 1
print("Number of coprime pairs : ", count)
# Driver code
if __name__ == "__main__" :
N = 120
countCoprimePairs(N)
# This code is contributed by ANKITRAI1
C#
// C# program to count number
// of Co-prime pairs from 1 to N
// with product equals to N
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)
return b;
if (b == 0)
return a;
// 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 count number of
// Co-prime pairs from 1 to N
// with product equals to N
static void countCoprimePairs(int n)
{
int count = 0;
Console.WriteLine("The co- prime pairs are: ");
// find all the co- prime pairs
// Traverse from 2 to sqrt(N) and
// check if i, N/i are coprimes
for (int i = 2; i <= Math.Sqrt(n); i++)
{
// check if N is divisible by i,
// so that the other term in pair
// i.e. N/i is integral
if (n % i == 0)
{
// Check if i and N/i are coprime
if (__gcd(i, (n / i)) == 1)
{
// Display the co- prime pairs
Console.WriteLine( "(" + i + ", " +
(n / i) + ")\n");
count++;
}
}
}
Console.WriteLine("\nNumber of coprime" +
" pairs : " + count);
}
// Driver code
public static void Main ()
{
int N = 120;
countCoprimePairs(N);
}
}
// This code is contributed by Shashank
PHP
输出:
The co- prime pairs are:
(3, 40)
(5, 24)
(8, 15)
Number of coprime pairs : 3