/*
#include <stdio.h>
long long int n;
int sqrt(long long int n)
{
int i=0;
while((long long int)i*i<=n)
{
i++;
}
return i-1;
}
int main()
{
scanf("%lld", &n);
printf("%d\n", sqrt(n));
return 0;
}
*/
/*
#include <stdio.h>
int n, m, x;
int max(int p, int q){ return p>=q?p:q;}
int min(int p, int q){ return p<q?p:q;}
int mid(int n, int m, int x)
{
if(n==min(n,m) && n==max(n,x))
return n;
if(m==min(m,n)&& m==max(m,x))
return m;
if(x==min(x,m)&& x==max(n,x))
return x;
}
int main()
{
scanf("%d%d%d", &n, &m, &x);
printf("%d\n", mid(n, m, x));
}
두 수의 곱= 두수의 최대공*최소공
최소공배=두수의곱/최대공약
*/
/*
#include <stdio.h>
int gcd(int p, int q){ if(p==0) return q; return gcd(q%p, p);}
long long int lcm(int a, int b)
{
int x = gcd(a,b);
return (long long int)a*b/x;
}
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%lld\n", lcm(a, b));
}
재귀함수 : 함수 내에서 자신을 다시 호출하는 함수
자기 자신으로 다시 정의내리는 함수
#include <stdio.h>
//void f(int n)
//{
// for(int i=1;i<=n;i++){
// printf("%d ",i);
// }
//}
f(n) : n 부터 1까지 출력
: n출력 -> n-1부터 1까지출력
: n출력 -> f(n-1)
f(n) = n출력 -> f(n-1) (n!=0)
= return (n==0)
void f(int n)
{
if(n==0) return ;
printf("%d ",n);
f(n-1);
}
int main()
{
int n;
scanf("%d",&n);
f(n);
}
*/
/*
#include <stdio.h>
int f(int n)
{
if(n==0) return ;
f(n-1);
printf("%d\n",n);
}
int main()
{
int n;
scanf("%d",&n);
f(n);
return 0;
}
f(a,b) : a ~ b출력
: a출력 -> a+1~b출력
: a출력 -> f(a+1,b) (a<=b)
*/
/*
#include <stdio.h>
void f(int a,int b)
{
if(a>b)
{
return ;
}
if(a%2==1)
{
printf("%d ",a);
}
f(a+1,b);
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
f(a,b);
return 0;
}
f(n) : 1~n합 리턴
: (1~n-1합 + n )리턴
: return (f(n-1)+n);
f(1) f(0)+1 (x)
if(n==1) return 1;
#include <stdio.h>
int f(int n)
{
if(n==1) return 1;
else return n+f(n-1);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
#include <stdio.h>
int f(int n)
{
if(n==1) return 1;
return n*f(n-1);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",f(n));
return 0;
}
*/



