Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

두 숫자의 k번째 공약수 출력

<시간/>

두 개의 숫자 x와 y가 주어졌을 때 출력은 k번째 공약수를 포함해야 합니다.

Input: x=9 y=18 k=1
Output : k common factor = 2
Factors of 9 : 1, 3, 9
Factors of 18 : 1, 2, 3, 6, 9, 18
Greatest Common Factor : 9

알고리즘

START
Step 1 -: take input as x and y lets say 3 and 21 and k as 1
Step 2 -: declare start variables as int i,num,count=1
Step 3 -: IF x<y
   Set num=x
End IF
Step 4 -: Else
   Set num=y
End Else
Step 5 -: Loop For i=2and i<=num and i++
IF x % i==0 and y % i == 0
   Count =count +1
End If
IF count=k
   Print i
End IF
Else
   Return -1
End Else
Step 6 -: End Loop For
STOP

예시

#include<stdio.h>
int main() {
   int x = 3, y = 21, k = 1; // taking x and y as two number and k is limit for their common factor
   int i,num,count=1;
   if(x<y) //fetching smaller value in num[poi
      num=x;
   else
      num=y;
   for (i=2; i<=num; i++) { //loop from 2 till smaller value
      if (x % i==0 && y % i == 0) //if remainder is 0 increment count
      count++;
      if (count == k)
         printf("%d",i);
      else
         printf("no value as there are less factors than k between x and y ");
      break;
   }
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 출력이 생성됩니다.

their kth common factor is : 2