[入試数学]京大2014理系大問5をC言語で解いてみた
問題内容

京大 理系 2014 大問5 です
安定の整数問題ですね、
ただ今回はa、bの値に範囲が無いのでそこは少し考えます。
コード
#include <stdio.h>
int main(int argc, const char * argv[]) {
int min=100*100 + 100*100;
for(int a=1; a<100; a++){
for(int b=1; b<100; b++){
if((a%3!=0) && (b%3!=0) && ((a*a*a+b*b*b)%81==0))
if((a*a+b*b)<min){
min = a*a + b*b;
printf("%d,%d,%d\n",a,b,min);
}
}
}
return 0;
}
二重ループで総当りで調べていくいつものやつですね。
ただ今回はaとbの範囲が自然数としか設定されていないので、
一旦どちらも1~99で調べています。
今回は最小値を調べる問題なのでaとbが100以上を取りうる場合の
a*a + b*bの最小値、すなわち100*100 + 100*100を始めにminに格納してます。
もし実行してコンソール画面に何も出なければNの値変えろって意味です。
まあN=100のときで出たので何もする必要はありませんでした。
答えは最後に出力されたa=13,b=14ですね。
感想
取り扱う値の上限が決まっていない整数問題でも、
最小値を求める場合ならC言語で対応できることがわかりました。
ではまた、