用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.2.求级数a=2/1 + 3/2 + 5/3 +8/5 +13/8+21/13…的前30项之和.

问题描述:

用C语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和.补充在下面.
2.求级数a=2/1 + 3/2 + 5/3 +8/5 +13/8+21/13…的前30项之和.

由于1000以内的73的倍数与127的倍数不存在相同的(这是因为73是素数,127是素数,它们的最小公倍数是73*127=9271),为了提高性能,则第一题程序可如下
#include
#include
void main( ) {
int i;
double sum = 0.0;
for(i = 73; i sum += sqrt(i);
for(i = 127; i sum += sqrt(i);
printf("sum=%lf\n",sum);
}
第一个for循环执行13次,第二个for循环执行7次,共做21次求sqrt运算和求和运算,远小于1000次.
第二题
#include
void main( ) {
int i,a,b,c;
double sum = 0.0;
for(i = 0,a = 1,b = 1; i c = a + b;
a = b,b = c;
sum += 1.0 * b / a;
}
printf("sum=%lf\n",sum);
}