因子、完数问题 ■若一个正整数的各真因子之和(不包括自 身)等于其本身,那么该正整数称为完数 例如:6有3个真因子,分别是1、2、3,而 6=1+2+3,所以6航是一个完数。编写程序 计算[10,1000之间所有完数的和。(524) ■分析:关键是怎么求出一个正整数的真因 子的和。那么我们首先要判断该正整数有 哪些因子
因子、完数问题 ◼ 若一个正整数的各真因子之和(不包括自 身)等于其本身,那么该正整数称为完数。 例如:6有3个真因子,分别是1、2、3,而 6=1+2+3,所以6就是一个完数。编写程序 计算[10,1000]之间所有完数的和。(524) ◼ 分析:关键是怎么求出一个正整数的真因 子的和。那么我们首先要判断该正整数有 哪些因子
因子、完数问题 比方我们输入一个正整数,然后求该正整数的所 有真因子的和。 maino int xn,s=o scanf(%d”,X); for(n=1; n<x; n++) f(x%n==0)s+=n; printf((s=%dn”,S);
因子、完数问题 ◼ 比方我们输入一个正整数,然后求该正整数的所 有真因子的和。 main() { int x,n,s=0; scanf(“%d”,x); for(n=1;n<x;n++) if(x%n==0)s+=n; printf(“s=%d\n”,s); }
maino int x. m sum=0.s k for(X=10;X<=1000;x++) s=0; k=X2+1; for(m=1; m<k; m++) f(x%m==0)s+=m; f(s==×)sum+=X; printf(sum=%d", sum)
main() { int x,m,sum=0,s,k; for (x=10; x<=1000; x++) { if (s==x) sum+=x; } printf("sum=%d",sum); } s=0; k=x/2+1; for (m=1; m<k; m++) if ( x%m==0 ) s+=m;
因子、完数问题 ■一个数如果恰好等于它的所有真因子之和,这个数就称为 “完数”。例如,6的真因子为1,2,3,而6=1+2+3,因 此,6是“完数”。求[1,1000之间的最大完数 ■个数如果恰好等于定的所有真因子之和,这个数就称 完数”。例如,6的真因子为1,2,3,而6=1+2+3, 此,6是“完数”。求[1,1000]之间的第二大完数。 求[200300]之间有奇数个不同因子的最大的整数(在计算 因子个数时,包括该数本身)。 求200300]之间第二大有奇数个不同因子的整数(在计算 因子个数时,包括该数本身) 已知24有8个正整数因子(即:1,2,3,4,6,8,12, 24),而24正好能被其因子数8整除,求正整数[10,100] 之间有多少个正整数能被其因子的个数整除
因子、完数问题 ◼ 一个数如果恰好等于它的所有真因子之和,这个数就称为 “完数”。例如, 6的真因子为1,2,3,而6=1+2+3,因 此,6是“完数”。求[1,1000]之间的最大完数。 ◼ 一个数如果恰好等于它的所有真因子之和,这个数就称为 “完数”。例如,6的真因子为1,2,3,而6=1+2+3,因 此,6是“完数”。求[1,1000]之间的第二大完数。 ◼ 求[200,300]之间有奇数个不同因子的最大的整数(在计算 因子个数时,包括该数本身)。 ◼ 求[200,300]之间第二大有奇数个不同因子的整数(在计算 因子个数时,包括该数本身)。 ◼ 已知24有8个正整数因子(即:1,2,3,4,6,8,12, 24),而24正好能被其因子数8整除,求正整数[10,100] 之间有多少个正整数能被其因子的个数整除
数列问题 ■求2+4+6+8+.+60的和。 maino int x sum=0 for(X=2;X<=60;X+=2 sum+= X printf(sum=%d n, sum )
数列问题 ◼ 求2+4+6+8+…+60的和。 main() { int x, sum=0 ; for ( x=2; x<=60; x+=2 ) sum+= x ; printf ( “sum=%d \n”, sum ); }