Я должен построить программу на C, которая читает n целое число и n пары 2 целых чисел. Программа должна отображать те пары чисел, которые я прочитал, чья наибольшая распространенностьделитель - это простое число.
Моя проблема в том, что я застрял в коде для чтения пар чисел и в том, как их распечатать, если они соблюдают условие. Мой код:
#include <stdio.h>
// find the gcd between 2 numbers
int gcd(int a, int b)
{
if(a==0)
return b;
while(b!=0)
{
if(a>b)
{
a=a-b;
}
else
{
b=b-a;
}
}
return a;
}
// check if a number is prime
int prime(int a)
{
int i;
if(a<2)
return 0;
for (i=2;i<=a-1;i++)
{
if (a%i==0)
return 0;
}
return 1;
}
int main()
{
int n,i;
int x,y,result;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&x,&y);
printf("(%d,%d)",x,y);
result=gcd(x,y);
}
for(i=0;i<n;i++)
{
if(prime(result)==1)
printf("(%d,%d)",x,y);
}
return 0;
}
Моя проблема в основной функции, где я застреваю в этой части чтения и отображения пар. Например, если я ввожу n = 3 и я читаю следующие пары: (12,20), (3,6) и (14,21) программа должна отображать (3,6) и (14,21), потому что gcd этих пар - простое число.