Наибольший общий делитель - простое число (проблема пар чисел в C) - PullRequest
0 голосов
/ 27 октября 2019

Я должен построить программу на 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 этих пар - простое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...