- ベストアンサー
訪問回数が素数の場合、違うメッセージがでる訪問カウンター
質問お願いします。 訪問回数が素数の場合、違うメッセージが出る訪問カウンター を作成しています。 まず、訪問回数が出るカウンターはできました(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; ?> 人目のお客様です。
- みんなの回答 (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; ?> 素数を求める公式は発見されてません。そんで素数は無限にあります。 数値型データの桁あふれに注意してみてください。 がんばって。でも学校のお勉強は自分で解いた方がいいですよ。
その他の回答 (1)
- karumakaruma
- ベストアンサー率65% (65/100)
変えたいメッセージというのは 「あなたは 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 ~ ?>で直接出力してもいいわけですが。
お礼
ご返答ありがとうございます。 参考にさせていただきます。
お礼
tamaCo様 ご返答ありがとうございます。 はい、その通りです課題です。 参考になるコードとありがたい ご意見ありがとうございました。 kasikoi-hでした。