素数を求めるプログラミング

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
やまと

素数を求めるプログラミング

#1 投稿記事 by やまと »

コマンドライン引数として10,000以下の自然数 n を指定し,n以下の素数の和を表示するプログラムを書け.もちろん出力されるべき値のテーブルをソースコードに書き込んではならない

という問題を教えていただけませんか?
(C言語です。始めは、#include<stdio.h>から始まります)
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

#2 投稿記事 by C1000 »

ここはActiveBasicの質問版です。CのことはCの掲示板へお願いします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#3 投稿記事 by konisi »

素数を列挙するプログラム
を移植・改造すればいいかと思います。

ただし、C言語にはString型は無かった筈なので、少し面倒になるかと思われます。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

#4 投稿記事 by C1000 »

もしくはKonisiさんの作ったアルゴリズムを参考にするのはどうでしょう。
卓漏
記事: 32
登録日時: 2005年11月30日(水) 06:38
お住まい: 静岡県の田舎町

Re: 素数を求めるプログラミング

#5 投稿記事 by 卓漏 »

>10,000以下の自然数 n を指定し,n以下の素数の和を表示するプログラム
↑たとえば、nが20だったら、20までの素数
2,3,5,7,11,13,17,19
をすべて足して、77(かな?)を表示させればいいということでしょうか?

自己解釈で↓にサンプルを置いておきますが、手抜きです。動作の保障しません。
最後に編集したユーザー 卓漏 [ 2006年6月27日(火) 07:07 ], 累計 2 回
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#6 投稿記事 by イグトランス »

卓漏さんのCのコードではforもそうですが,scanf/printfでlong型の変数に対して%dを使っているのが惜しいですね。%ldです。

それにしても,ActiveBasicの掲示板でCのことを訊くとはよほど焦っているのでしょうか。
もっとほかに適切な場所もあったでしょうに。
とは言え,私も頻繁にCやC++のことを引き合いに出すので,あまり堂々と言えるものではありませんが。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#7 投稿記事 by konisi »

>>卓漏
コマンドライン引数を使うのですから、scanfで設定するのではなくargv[1]を調べて設定するほうが適切なのではないかなと。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
tks

#8 投稿記事 by tks »

Active Basicで作った、13以上の素数を求めるプログラム

コード: 全て選択

動作保障済み
#prompt
2 Dim A As Long'素数の入力用
3 Dim B As Long'素数の計算用
4 Dim C As Long'素数の計算用
5 Dim D As Long'素数の計算用
6 Dim E As Long'素数
7 C=0:D=0:E=0
8 INPUT "13以上の数字を入力して下さい";A
9 FOR B=1 TO 13 STEP 1
10 IF A>=13 THEN 12 Else 8
11 NEXT
12 FOR C=1 TO A STEP 1
13 LET  D=C MOD 2
14 IF D=1 THEN E=E+1
15 NEXT 
16 E=E-1
17 PRINT "素数の数";E’素数の表示
18 GOTO 7 
END
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#9 投稿記事 by konisi »

>>tks
9行目と11行目の存在価値が不明です。
13行目では、数の奇数性しか判定していないように見えます。
100までに素数は25個のみの筈なのに、49と表示されます。

そして今日は4月1日ではありません。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ゲスト

#10 投稿記事 by ゲスト »

何かの課題なのでしょうか?
「素数」
コマンドライン引数として10,000以下の自然数 n を指定し,n以下の素数の和を表示するプログラムを書け.もちろん出力されるべき値のテーブルをソースコードに書き込んではならない
実行例
$ ./main 2
2
$ ./main 3
5
$ ./main 4
5
$ ./main 5
10
$ ./main 6
10
$ ./main 7
17


--------------------------------------------------------------------------------

状況説明
Tokugawaさんが持っているカードには1000以下の自然数が一つ書かれている.
Tokugawaさんはそのカードを見せてはくれないが,Kawaguchi君が
カードに書かれている数字は300ですか?
という形式の質問をすると,Tokugawaさんは以下のように正直に答えてくれる.
書かれている数字は300よりも大きい.
その通りです.
書かれている数字は300よりも小さい.
何回質問しても正直に答えてくれる.

Kawaguchi君はどのように質問すればカードに書かれている数字を素早く知ることができるだろうか?
Kawaguchi君はカードに書かれている数字を知るために何回ぐらい質問する必要があるだろうか?
このことを経験的に確かめたい.
ゲスト

#11 投稿記事 by ゲスト »

10000までの素数を列記し、バイナリ検索で目的の数値にたどり着くまでの回数を求めよ?Cで?
三毛CAT

素数の和

#12 投稿記事 by 三毛CAT »

最初の書き込みのような動作をするものをActive Basicで作ってみました。 10000までの所要時間:9820651ミリ秒(1回実測・目安として)
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#13 投稿記事 by konisi »

暇が出来たのでもう少し速い奴を作ってみました。
こちらの環境で、20~32msで10000までの総和を求められます。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
三毛CAT

素数の和(C)

#14 投稿記事 by 三毛CAT »

前のと同じ感じ(位置の表示はなし)のC版です。 10000でかかった時間は5.63秒(1回実測)
返信する