私が C で書いた単純なプログラムは、実行に 30 分以上かかります。C の実行に非常に時間がかかることに驚いています。なぜなら、インターネットで見つけたものによると、C ( C++ や Java は別として) はより高速な言語の 1 つだからです。
// this is a program to find the first triangular number that is divisible by 500 factors
int main()
{
int a; // for triangular num loop
int b = 1; // limit for triangular num (1+2+3+......+b)
int c; // factor counter
int d; // divisor
int e = 1; // ends loop
long long int t = 0; // triangular number in use
while( e != 0 )
{
c = 0;
// create triangular number t
t = t + b;
b++;
// printf("%lld\n", t); // in case you want to see where it's at
// counts factors
for( d = 1 ; d != t ; d++ )
{
if( t % d == 0 )
{
c++;
}
}
// test to see if condition is met
if( c > 500 )
{
break;
}
}
printf("%lld is the first triangular number with more than 500 factors\n", t);
getchar();
return 0;
}
確かに、プログラムは大量のデータを処理しますが、どれも保存されず、テストされて渡されただけです。
Windows 8 で Tiny C コンパイラを使用しています。
これが非常にゆっくりと実行される理由はありますか? 同じ結果を達成するためのより速い方法は何でしょうか?
ありがとうございました!