• ベストアンサー

訪問回数が素数の場合、違うメッセージがでる訪問カウンター

質問お願いします。 訪問回数が素数の場合、違うメッセージが出る訪問カウンター を作成しています。 まず、訪問回数が出るカウンターはできました(2) 素数の場合がよくわからないので、とにかく"奇数"で 違うメッセージがでるようにしました(1)が、 まず(1)と(2)をうまく組み合わせられませんでした。 そして、素数かどうかを割り出す方法は調べてわかったのですが、 素数の場合・・・となるとわからなくて。 (考え途中のため、以下のソースは完成してないところ有りです。 中途半端ででみませんです。。) <?php //(1) if(($yes= % 2)== 0){ print("奇数ではないです。"); }else{ print("奇数です。"); }  //(2)アクセスカウンター  $file = touch("sample.txt"); $fp = fopen("sample.txt","r+"); $count = fgets($fp, 10); $count = $count + 1; fseek($fp,0); fputs($fp, $count); fclose($fp); ?> <p> あなたは <?php echo $count; ?> 人目のお客様です。

質問者が選んだベストアンサー

  • ベストアンサー
  • tamaCo
  • ベストアンサー率66% (47/71)
回答No.2

こんにちは。 これって課題かなんかですか? 課題なのであればご自分で解かないと意味がないと思いますけど…? (通常自分のサイトでカウンタ数が素数とか考えないですよね?) #インデントに全角スペース入れてます。 //(1)素数判定関数 function primeCheck($i) {  var $ret = false;  //素数判定関数の内容を以下に記述する  …  …  if($i == 素数である)   $ret = true;  return $ret; } //(2)アクセスカウンター $count = ""; $file = touch("sample.txt"); $fp = fopen("sample.txt","r+"); $count = fgets($fp, 10); $count = $count + 1; fseek($fp,0); fputs($fp, $count); fclose($fp); $disp_message = ""; if(primeCheck($count)) //素数判定関数呼出  $disp_message = "素数でした"; else  $disp_message = "素数じゃないみたいです"; ?> <p>あなたは <?php echo $count; ?> 人目のお客様です。</p> <? echo $disp_message; ?> 素数を求める公式は発見されてません。そんで素数は無限にあります。 数値型データの桁あふれに注意してみてください。 がんばって。でも学校のお勉強は自分で解いた方がいいですよ。

kasikoi-ho
質問者

お礼

tamaCo様 ご返答ありがとうございます。 はい、その通りです課題です。 参考になるコードとありがたい ご意見ありがとうございました。                   kasikoi-hでした。

その他の回答 (1)

回答No.1

変えたいメッセージというのは 「あなたは n 人目のお客様です。」 の部分でしょうか? それならば、そのメッセージ自体をphpで作って <?= echo $counter_message ?> という感じで出してやればいいんじゃないでしょうか? 奇数偶数でメッセージを変える例 --------------------------------------------------------- <?php $file = touch("sample.txt"); $fp = fopen("sample.txt","r+"); $count = fgets($fp, 10); $count = $count + 1; fseek($fp,0); fputs($fp, $count); fclose($fp); if(($count= % 2)== 0){ $counter_message = "$count 人目さん。いらっしゃ~い"; } else { $counter_message = "あなたは $count 人目のお客様です。"; } ?> <p> <?= echo $counter_message ?> ------------------------------------------------------------ まぁ、<?php ~ ?>で直接出力してもいいわけですが。

kasikoi-ho
質問者

お礼

ご返答ありがとうございます。 参考にさせていただきます。