#include <stdio.h>
int main(void) {
long int t,i ,a,b;
scanf("%ld",&t);
for(i=1;i<=t;i++)
{
scanf("%ld%ld\n",&a,&b);
while(a!=b&&a!=0&&b!=0)
{
if(a>b)
a=a-b;
else
b=b-a;
}
printf("%ld\n",a+b);
}
return 0;
}
#include <stdio.h>
int main(void) {
long int t,i ,a,b;
scanf("%ld",&t);
for(i=1;i<=t;i++)
{
scanf("%ld%ld\n",&a,&b);
while(a!=b&&a!=0&&b!=0)
{
if(a>b)
a=a-b;
else
b=b-a;
}
printf("%ld\n",a+b);
}
return 0;
}
The scanf statement is incorrent for your purpose. It should be scanf("%ld %ld", &a, &b);
instead of scanf("%ld%ld\n",&a,&b);
.
The result of while loop will be the HCF of the two numbers.
Just try mathematical approach to find HCF of a and b
while(b>0){
temp=b;
b=a%temp;
a=temp;
}
then print 2*a.
What are you trying to solve.
It looks like…
Lets say a=5,b=2
5-2=3 (a=3)
3-2=1 (a=1)
2-1=1 (b=1)
now a=b=1 so it should print 2.
You can do it like this
public static void main (String[]args) throws java.lang.Exception
{
// your code goes here
Scanner in = new Scanner (System.in);
int t = in.nextInt ();
for (int i = 0; i < t; i++)
{
int a = in.nextInt();
int b = in.nextInt();
while (a!=b && a!=0 && b!=0)
{
if (a>b && a%b!=0) a-=(a/b)*b;
else if (a>b) a-=b;
else if (b>a && b%a!=0) b-=(b/a)*a;
else if (b>a) b-=a;
}
System.out.println(a+b);
}
}
can you send the question link
LOL. An example based on an Anime Series “Seven Deadly Sins”. Crazy!
Just code something incredibly inefficient and you will encounter TLE in no time.
can you send link or problem code?