※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

「AOJ再挑戦56~60」の編集履歴(バックアップ)一覧に戻る

AOJ再挑戦56~60 - (2014/01/30 (木) 03:30:32) の1つ前との変更点

追加された行は青色になります

削除された行は赤色になります。

 *Goldbach's Conjecture
 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0056
 ゴールドバッハ予想に関する問題。
 解法
 篩にかけてあとはテーブル化して数えるだけです。
 
 
  #include<stdio.h>
  #include<string.h>
  const int MAX=60000;
  bool isPrime[MAX+1];
  
  void calc(){
  	memset(isPrime,true,sizeof(isPrime));
  	isPrime[0]=isPrime[1]=false;
  	for(int i=2;i*i<=MAX;i+=(1+(i&1))){
  		if(isPrime[i]==false)continue;
  		int add=i%2==0?i:i*2;
  		for(int j=(i%2==0?i*2:i*3);j<=MAX;j+=add){
   			isPrime[j]=false;
   		}
  	}
  }
  
  int main(){
  	calc();
  	int n;
   	while(scanf("%d",&n)!=EOF){
  		int p1,p2;
  		for(p1=n-1;isPrime[p1]==false;p1--);
   		for(p2=n+1;isPrime[p2]==false;p2++);
   		printf("%d %d\n",p1,p2);
+ 	}
+ }
+
+
+
+*問57 The Number of Area
+http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0057
+平面をn本の直線で分割した時、最大の分割数をこたえる問題。
+n本ひかれたときにn+1本目はn本全部と交差する。
+これはn+1個の平面を2つに分割する事と同じだからn+1個分割が増える。
+
+
+ #include<stdio.h>
+ 
+ int main(){
+ 	int n;
+  	while(scanf("%d",&n)!=EOF){
+ 		printf("%d\n",1+(n*(n+1))/2);
  	}
  }