public class Nada2007Prob{// 灘中学校の入試問題から // 207, 2007, 20007, ... のうち 27 で割れて 81 で割れないものを見つける. public static void main(String[] args) { double a; // 数列の要素 a_i. ベキ乗 pow を使うので double 型で OK? long b; // 小数点表示される a を整数表示するために導入 for(int i=1; i<15;i++){ // 答を見つけ次第終わらせてもよかったが, // パタンを見つけるために余分な計算をさせてみる. // 以下で a=2*10^{i+1}+7 と設定 // a_1=207, a_2=2007, a_3=20007 ... ということ a = 2*Math.pow(10,i+1)+7; b= (long) a; // a の型を浮動少数点数から整数に変換. if (b % 81==0){ // "b % 81" は b を 81 で割った余りのこと System.out.println(b + "は 81 で割れてしまう"); } else if (b % 27==0){ System.out.println(b + "は 27 で割れるが 81じゃ割れない.正解候補!"); } else { System.out.println(b + "は 27 でも割れないのでダメ"); } } } }