by 卓漏 » 2006年6月26日(月) 22:14
			
			
			>10,000以下の自然数 n を指定し,n以下の素数の和を表示するプログラム
↑たとえば、nが20だったら、20までの素数
2,3,5,7,11,13,17,19
をすべて足して、77(かな?)を表示させればいいということでしょうか?
自己解釈で↓にサンプルを置いておきますが、手抜きです。動作の保障しません。
Active Basicのサンプル [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
あくまでもサンプルなので、これだけでは動作しません。
「#console」を一番先頭に置いたりすれば動作するかもしれません。
コード: 全て選択
Dim I As Long, N As Long, A As Long
Dim Check As Integer
Dim Num As Long   '指定された自然数が入る変数
Input "n=";Num
For I = 2 To Num
	Check = 0
	'Iが素数か調べる
	For N = I - 1 To 2 Step -1
		Print I ; " ";
		Print N ; I Mod N
		If I Mod N = 0 And Not I = N Then
			'割り切れた
			Check = -1
			N = 1
		End If
	Next N
	If Check = 0 Then
		A = A + I
	End If
Next I
Print A	'答え表示
 
C言語のサンプル [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
あくまでもサンプルなので、これだけでは動作しません。
「#include<stdio.h>」を一番先頭に置いて、下のコードを「main(){ ~ }」で囲えば動作するかもしれません。
コード: 全て選択
long I, N, A;
int Check;
long Num;   /* 指定された自然数が入る変数 */
printf("n=");
scanf("%d", &Num);
for(I = 2, I <= Num, I++){
	Check = 0;
	/* Iが素数か調べる */
	for(N = I - 1,  I >= 2, N--){
		if (I % N == 0 && I != N){
			/* 割り切れた */
			Check = -1;
			N = 1;
		}
	}
	if (Check == 0){
		A += I;
	}
}
printf("%d", A);	/* 答え表示 */
 >10,000以下の自然数 n を指定し,n以下の素数の和を表示するプログラム
↑たとえば、nが20だったら、20までの素数
2,3,5,7,11,13,17,19
をすべて足して、77(かな?)を表示させればいいということでしょうか?
自己解釈で↓にサンプルを置いておきますが、手抜きです。動作の保障しません。
[hide=Active Basicのサンプル]
あくまでもサンプルなので、これだけでは動作しません。
「#console」を一番先頭に置いたりすれば動作するかもしれません。
[code]
Dim I As Long, N As Long, A As Long
Dim Check As Integer
Dim Num As Long   '指定された自然数が入る変数
Input "n=";Num
For I = 2 To Num
	Check = 0
	'Iが素数か調べる
	For N = I - 1 To 2 Step -1
		Print I ; " ";
		Print N ; I Mod N
		If I Mod N = 0 And Not I = N Then
			'割り切れた
			Check = -1
			N = 1
		End If
	Next N
	If Check = 0 Then
		A = A + I
	End If
Next I
Print A	'答え表示
[/code]
[/hide]
[hide=C言語のサンプル]
あくまでもサンプルなので、これだけでは動作しません。
「#include<stdio.h>」を一番先頭に置いて、下のコードを「main(){ ~ }」で囲えば動作するかもしれません。
[code]
long I, N, A;
int Check;
long Num;   /* 指定された自然数が入る変数 */
printf("n=");
scanf("%d", &Num);
for(I = 2, I <= Num, I++){
	Check = 0;
	/* Iが素数か調べる */
	for(N = I - 1,  I >= 2, N--){
		if (I % N == 0 && I != N){
			/* 割り切れた */
			Check = -1;
			N = 1;
		}
	}
	if (Check == 0){
		A += I;
	}
}
printf("%d", A);	/* 答え表示 */
[/code]
[/hide]