初歩的な問題で申し訳ないのですが、よかったら解答お願いします。
(1)4桁の数字2025は2025=(20+25)^2という等式を満たす。4つの数字a,b,c,d∈{0,1,2,…9}について、同様にabcd=(ab+cd)^2の成り立つものをすべて見つけなさい。
注:(a,b,c,d)=(0,0,0,0),(0,0,0,1)も上記を満たすとする。
(2)20以下の正整数の集合から、[7の倍数]と[1の位が7のもの]を取り除くと{1,2,3,4,5,6,8,9,10,11,12,13,15,16,18,19,20}となり、その総和は172である。
1000以下の正整数の集合から,[7の倍数]と[1の位が7のもの]を取り除いて得られる整数の総和を求めよ。
(3)2から18までのすべての整数で割り切れる正整数のうち最も小さいものを求めよ。
(4)3桁の整数376の2乗は141376となり、下3桁が元の376と同じになる。
4桁の整数(1000以上9999以下の整数)で、4乗した値の下4桁が元と同じになるものをすべて見つけなさい。
注:int型変数の扱える最大値に注意せよ。大きな整数xに対して、x^2の下4桁を知るには、xの下4桁のみ分かれば良い。
(5)1^1+2^2+…+99^99を10000で割った余りを求めよ。
(6)Nを4桁の整数(1000以上9999以下の整数)とし、N'をNの数字を逆順にならべたものとする
N'=9Nを満たす数字にN=1089,N'=9801がある
N'=4Nを満たす数字をすべて見つけなさい。
(7)195を3倍して6を加えると3*195+6=591となって、数字が逆順にならぶ。9,999,999以下の正整数xで,3x+6がxの逆順となるものをすべて求めよ。
問題を投げ捨てる形で申し訳ないですが、よろしくお願いします
わからない問題
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: わからない問題
フォーラムルールに宿題・課題を質問する場合のルールが記載されていますのでまずお読みください。
http://dixq.net/board/board.html
最低限のルールとして
・自分で出来る限りの事をやること。
・未完成でもソースコードを提示すること。
・複数の問題をまとめて質問しないこと。
・締め切りを明確にすること。
をお願いします。
http://dixq.net/board/board.html
最低限のルールとして
・自分で出来る限りの事をやること。
・未完成でもソースコードを提示すること。
・複数の問題をまとめて質問しないこと。
・締め切りを明確にすること。
をお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: わからない問題
とりあえず作ってみましたが答えがあってるかどうかは分りません。
Q1
Q2
Q3
Q4
Q5
Q6
Q7
[hr][修正]Q3を修正
[修正]Q2が間違っていたので修正
[修正]Q5を修正
Q1
object Q1
{
def main(args : Array[String]) : Unit = (0 to 9999).filter(x => x == scala.math.pow(x / 100 + x % 100, 2).asInstanceOf[Int]).foreach(println)
}
object Q2
{
def main(args : Array[String]) : Unit = println((1 to 1000).filter(_ % 7 != 0).filter(_ % 10 != 7).sum)
}
object Q3
{
def producePrimesUnder(n : Int) = (2 to n).filter(x => (2 to x - 1).count(x % _ == 0) == 0)
def count[T](t : T, stopper : T => Boolean, f : T => T, n : Int = 0) : Int = if (!stopper(t)) count(f(t), stopper, f, n + 1) else n
def main(args : Array[String]) : Unit = println(producePrimesUnder(18).map(p => (p, (2 to 18).map(count[Int](_, _ % p != 0, _ / p)).reduce(scala.math.max))).map(t => scala.math.pow(t._1, t._2)).reduce((x, y) => x * y).asInstanceOf[Int])
}
object Q4
{
def main(args : Array[String])
{
val f = (x : Int, y : Int) => (x, (scala.math.pow(y, 2) % 10000).asInstanceOf[Int])
(1000 to 9999).map(x => (x, x.asInstanceOf[Int])).map(f.tupled.andThen(f.tupled)).filter(t => t._1 == t._2).foreach(t => println(t._1))
}
}
object Q5
{
def powWithUnder4Digit(n : Int, m : Int) : Int = (1 to m).map(x => n).reduce((x, y) => x * y % 10000)
def main(args : Array[String]) : Unit = println(((1 to 99).map(x => powWithUnder4Digit(x, x)).sum % 10000).asInstanceOf[Int])
}
object Q6
{
def reversedInt(n : Int) : Int = Integer.parseInt(n.toString.reverse)
def main(args : Array[String]) : Unit = (1000 to 9999).filter(x => x == reversedInt(x) * 4).foreach(println)
}
object Q7
{
def main(args : Array[String]) : Unit = (1 to 9999999).filter(x => x.toString == (3 * x + 6).toString.reverse).foreach(println)
}
[修正]Q2が間違っていたので修正
[修正]Q5を修正
最後に編集したユーザー bitter_fox on 2012年4月16日(月) 12:37 [ 編集 2 回目 ]
Re: わからない問題
動くかもしれないプログラムです。
j;main(i){for(;j<=9999;j++)i=j/100+j%100,j==i*i&&printf("%04d\n",j);}
j,k;main(i){while(++j<=1000)j%7&&j%10!=7&&(k+=j);printf("%d\n",k);}
main(){printf("%d\n",2*3*2*5*1*7*2*3*1*11*1*13*1*1*2*17*1);}
j;main(i){for(j=1000;j<=9999;j++){i=j*j%10000;if(i*i%10000==j)printf("%d\n",j);}}
j,k,n;main(i){while(++j<=99){i=1;for(k=j;k--;)i=i*j%10000;n+=i;}printf("%d\n",n%10000);}
main(i){for(i=1000;i<=9999;i++){i%10*1000+i/10%10*100+i/100%10*10+i/1000==4*i&&printf("%d\n",i);}}
j,k;main(i){for(;++j<=3333333;){k=0;for(i=j;i;i/=10)k=k*10+i%10;k==3*j+6&&printf("%d\n",j);}}