等差数列的求法:
#include<stdio.h>//求等差数列
main()
{
int i,j,number,n;
for(number=1;number<6;number++)
for(n=1;n<4;i++)
if((4*number+6*n==26)&&(number*(number+n)*(number+2*n)*(number+3*n)==880))
{
printf("结果是:\n");
for(j=1;j<=20;j++)
{
printf("%3d",number);
number+=n;
if(j%5==0)
printf("\n");
}
}
}
//结果:2 5 8 11 14
17 20 23 26 29
32 35 38 41 44
47 50 53 56 59
亲密数:
定义:如果整数a的全部因子(不包括a)之和等于b,而且整数b的全部因子(不包括b)之和等于a,则将a和b称为亲密数。例如220=1+2+4+5+10+11+20+22+44+55+110=284。下面是用c代码实现该功能。
源代码:
#include<stdio.h>
main()
{
int i,j,k,sum1,sum2;
for(i=1;i<=10000;i++)
{
sum1=0;
sum2=0;
for(j=1;j<i;j++)
if(i%j==0)
sum1+=j;
for(k=1;k<sum1;k++)
if(sum1%k==0)
sum2+=k;
if(sum2==i&&i!=sum1&&i<sum1)
printf("%5d=>%5d\n",i,sum1);
}
}
实现的方法和思路是(个人观点,不喜勿喷算法的效率有点低...):
采取穷举法对10000以内的数进行逐个求因子,并求出所有因子之和sum1,再对所求的和sum1求因子,并再次求所有的因子之和sum2,此时按亲密数的要求进行进一步的筛选并求出结果。