Baek Junアルゴリズム1977:完全平方数


リンク


https://www.acmicpc.net/problem/1977

質問する


MとNが与えられた場合、M以上N以下のすべての自然数から完全二乗数を選択して和を求め、プログラムを記述してその最大値を探す.例えばM=60、N=100であり、60以上100以下の自然数のうち、完全二乗数は64、81、100であり、合計3個あり、その合計は245であり、そのうち最大値は64である.

入力


第1行M、第2行N.MとNは10000以下の自然数であり、MはN以下である.

しゅつりょく


M以上N以下のすべての自然数の完全な平方数を探し出し、第1行でその和を出力し、第2行でその最大値を出力する.ただし、M以上N以下の自然数では、完全に二乗できない場合は、1行目に−1が出力される.

入力と出力の例



プールコード

#include <stdio.h>

int main(){
  int m,n,min = 10000,sum = 0,count = 0;
  scanf("%d%d",&m,&n);
  for(int i = m; i <=n; i++){
    for(int j = 1; j < n; j++){
      if(j*j == i){
        sum += j*j;
        count++;
        if(min > i){
          min = i;
        }
      }
    }  
  }
  if(count == 0){
      printf("-1");
      return 0;
  }
  else
    printf("%d\n%d",sum,min);
  return 0;
}