Computer Science/Algorithm
[Algorithm/C] BOJ.1977 완전제곱수
재오니소스
2017. 12. 22. 22:39
접근방법
1. 루트를 씌운값이랑 루트를 씌운 후 소수점을 버린 값이랑 비교한다.
/*
https://www.acmicpc.net/problem/1977
완전제곱수
M과 N이 주어질 때 M이상 N이하의 자연수 중
완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최소값을 찾는 프로그램을 작성하시오.
예를 들어 M=60, N=100인 경우
60이상 100이하의 자연수 중
완전제곱수는 64, 81, 100 이렇게 총 3개가 있으므로
그 합은 245가 되고 이 중 최소값은 64가 된다.
Writer : Mun Jae In
Date : 2017.12.22
*/
#include <stdio.h>
#include <math.h>
int main(int argc, char * argv[])
{
int m, n;
int sum = 0;
int min = 0;
int i = 0;
scanf("%d",&m); scanf("%d",&n);
for( ; m<=n; m++)
{
if(sqrt((double)m) - (int)sqrt((double)m) == 0)
{
i++;
sum += m;
if(i == 1)
{
min = m;
}
//printf("m : %d\n",m);
//printf("sum : %d\n",sum);
}
}
if(sum>0)
{
printf("%d\n",sum);
printf("%d\n",min);
}
else
{
printf("-1\n");
}
return 0;
}