[Javaで]天下一プログラマコンテスト2012C-1を解いてみた

2012年9月20日

前回の記事の問題をJavaで解いてみた.問題については前回の記事を参照してください.


import java.util.Scanner;
public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int test=sc.nextInt();
System.out.println(getprimenum(test));
}
private static int getprimenum(int prime){
int count=0;
int now=2;
if(prime==1){return 0;}
else{
while(now<prime){
if(primecheck(now)){count++;}
now++;
}
}
return count;
}
private static boolean primecheck(int testprime){
if(testprime==2){return true;}
else{
for(int n=2;n<testprime;n++){
if(testprime%n==0)return false;
}
return true;
}
}
}

考え方に関しても前回の記事を参照.結果としては20MBのメモリ使用率で995msecでクリア.

ちなみにCではメモリ使用率748KB,実行時間は46msec.

同じことに対してのコードであってもこういう風に違うという観点の話を大学でしないことが残念でならない.

プログラミング言語で何をやるかという観点も非常に大事だ.その一方で,プログラミング言語はどのような特性を持ち得ているのか

ということを考えるべきだ.

何をやるかとのたまうことは正直な話,誰にでもできる.

大学が目指すべきはそのアイデアを具体的な形にすることのできる技術についても考えることのできる人材なのだが……

その道は遠そうだと自らの大学のカリキュラムを見て思うのであった.

[Cで]天下一プログラマコンテスト2012予選C-A

2012年9月9日

 

 

天下一プログラマコンテスト2012予選Cの問題を少しやってみたので書いておく.

 

 

問題文

素数とは、1 と自分自身以外に正の約数を持たない、1 以外の自然数のことをいいます。

自然数 n が与えられるので、 n よりも小さい素数の数は何個存在するかを求めてください。


入力

入力は以下の形式で標準入力から与えられる。

n
  • 自然数 n ( 1≤n≤10,000 ) が 1 行で与えられる。

出力

n よりも小さい素数の個数を標準出力に 1 行で出力せよ。
なお、行の終端には改行が必要である。

入力例 1

11

出力例 1

4
  • 11 よりも小さい素数は、 2 , 3 , 5 , 7 の 4 つです。
  • ※ 「11 よりも小さい」なので、11 は含みません。

入力例 2

100

出力例 2

25

入力例 3

10000

出力例 3

1229
これをまずCで組んでみる.

#include<stdio.h>

int prime(int tester);

int main(void){
int input;
int count=0;
int now=2;
scanf("%d\n",&input);
for(;now<input;now++){
if(prime(now)){count++;}
}
printf("%d\n",count);
return 0;
}
int prime(int tester){
int count=2;
if(tester==2){return 1;}
else{
for(;count<tester;count++){
if(tester%count==0){return 0;}
}
return 1;
}
}

これで通りました.

ちょっと解説してみる.

 


int prime(int tester);

で宣言をしておく.

そしてメイン関数で2から入力された数までの素数をカウントしている.

 

 

int prime(int tester)の中身は純粋な素数判定プログラム.

素数はその数(tester)と1以外では割り切れない数であるので,

2からtester未満の数でtesterを割った時に割り切れないということと同じである.

1が返り値であればtesterは素数.0が返り値であればtesterは素数でないということになっている.

javaとかは余裕があったらまた書いてみる.

 

  プロフィール  PR:無料HP  横手自動車学校  アニメーション 専門学校  夏タイヤを格安ゲット  カーナビ 取り付け  タイヤ 12インチ  音響 専門学校  レインウェア  ふくやま自動車学校  水晶  小学校教諭 大学  音楽 専門学校 福岡  ロゴ ホンダ 中古  セキスイのリノベ