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]