素因数の和のプログラム
Posted: 2010年11月11日(木) 14:35
プログラムが…
以下のプログラムを作っているのですが、よく分かりません・・・
星野監督が 77,島野ヘッドコーチは 78 です.さて,77 と 78の素因数の和は等しくなっています.
つまり,77=7×11,78=2×3×13,7+11=18,2+3+13=18 となっています.
このように,素因数の和が互いに等しいという条件を満たすような,
差が 1 の自然数の組を 20000 以下でできるだけ多く探索しましょう.
ここで,20000 以下には 26 組しかないことがわかっています.
#include<stdio.h>
#difine MAX 20000
int main(){
int sum[MAX+1];
int i,j,n;
for(i = 2;i <= MAX;i++){
j = 2;
while(j*j <= i){
if(i % j == 0){
_________________;
break;
}
else
j++;
}
if(j*j > i)
___________________;
}
n = 0;
for(i = 2;i < MAX;i++)
if(sum == sum[i+1]){
n++;
printf("%3d (%d,%d)\n",n,i,i+1);
}
return 0;
}
以下のプログラムを作っているのですが、よく分かりません・・・
星野監督が 77,島野ヘッドコーチは 78 です.さて,77 と 78の素因数の和は等しくなっています.
つまり,77=7×11,78=2×3×13,7+11=18,2+3+13=18 となっています.
このように,素因数の和が互いに等しいという条件を満たすような,
差が 1 の自然数の組を 20000 以下でできるだけ多く探索しましょう.
ここで,20000 以下には 26 組しかないことがわかっています.
#include<stdio.h>
#difine MAX 20000
int main(){
int sum[MAX+1];
int i,j,n;
for(i = 2;i <= MAX;i++){
j = 2;
while(j*j <= i){
if(i % j == 0){
_________________;
break;
}
else
j++;
}
if(j*j > i)
___________________;
}
n = 0;
for(i = 2;i < MAX;i++)
if(sum == sum[i+1]){
n++;
printf("%3d (%d,%d)\n",n,i,i+1);
}
return 0;
}