tfsf.net
当前位置:首页>>关于c++作业题 一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,并且6=...的资料>>

c++作业题 一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,并且6=...

你这个思路对了,但是跟题目要求不对,题目要求输入为YES或者为NO,而你的程序输出要么是一个数,要么什么都不输出.

28:1 2 4 7 14 496:1 2 4 8 16 31 62 124 248 8128: 1 2 4 8 16 32 64 127 254 508 1016 2032 4064 28=1+2+4+7+14 496=1+2+4+8+16+31+62+124+248 8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064 我后来补上了,没显示出来

Private Sub Command1_Click() Dim n, r, j, i As Integer n = 1000 For i = 1 To n - 1 r = 0 For j = 1 To i - 1 If i Mod j = 0 Then r = r + j End If Next If r = j Then Print "结果是:" & r r = 0 End If Next End Sub

main(){int n,i;int sum=0;for(n=2;n

不是说能整除的就是因子,一个数的所有因子相乘等于这个数,而且因子都是质数(除了1) 比如12,能整除12的数有,1、2、3、4、6、12,但12的因子只有三个2、2、3

#include void main() { int m,i,s; for(m=1;m { s=0;//初始化因子之和s为0 for(i=1;i if(m%i==0) //如果m能整除i,则i为m的因子 s=s+i;//将因子累加 if(s==m) //如果因子之和等于这个数 printf("%d\t",s);//输出 } getch(); } 运行结果:6 28 496

完数很少的,可以用数学公式证明的.#include <iostream> using namespace std; int main () { int i ; int sum = 0; for (i = 2;i <= 1000;i ++) { int m = i; int j = 2; sum=0;//赋初值 while(j < m){ if(m % j == 0){ //m = m / j;这里不用除 sum = sum + j; //j = 2;

就是用int f(int n)还有你最后那个输出是错的,应该是printf("%d\n",n)双引号放错位置了

例如,6的因子是1,2,3,而6=1+2+3,因此6是完数.请编写程序,求出1000内的所有完数.(注意:输出格式示例一定要是:6=1+2+3)

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.tfsf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com