C语言编程:输出10000以内所有的完数?

作者&投稿:寸疮 (若有异议请与网页底部的电邮联系)
用C语言编程2~10000中得所有完数~

#include "stdio.h"void main(){ int j,k,sum = 0; for(k=2;k<=10000;k++) { sum=0; for(j=1;j<k;j++) if(k%j==0) sum=sum+j; if(sum==k) printf("%d ",k); }}

用C语言输出1000以内所有的完数步骤如下:
1、首先打开vc6.0,新建一个项目。

2、添加头文件。

3、添加main函数。

4、定义i,j,k,n,sum。

5、定义一个数组。

6、使用第一层for循环。

7、使用第二层for循环,用来求出每位的数字。

8、使用if条件判断语句。

9、运行程序看看结果。

可以定义一个结构,其中的数据成员有:int型变量s,用以存储各因数的和值;int型数组ys,长度为64,用于存储各因数的值;还有一个int型变量c,用于存储因数的个数。然后定义一个函数,该函数的返回值类型为这个结构,输入参数为一int型待判断正数。函数的内部,一开始,定义一个结构变量,并对它的s和c初始化为0,然后,进行一个用于查找各因数的循环,找到一个,就将它累加到和值变量s,然后将这个因数存储到结构的ys数组的c元素中,接着对c进行加一操作,函数体最后,返回定以被赋值了的结构变量。。。。。接下来就是在主函数main中,调用该函数,具体步骤不再详述,见配图。

代码-1

代码-2

运行结果




#include<stdio.h>
int f1(int x){/*判断x是否完数*/
int i,s=0;
for (i=1;i<x;i++) if (x%i==0) s+=i;
return x==s;
}
void f2(int x){/*输出x的因子和*/
int i;
printf("%d=1",x);
for (i=1;i<x;i++) if (x%i==0) printf("+%d",i);
printf("
");
}
void main(){
int i;
for (i=1;i<10000;i++) if (f1(i)) f2(i);
}



//求完数 

#include<stdio.h>

int sum1(int n)

{int s=1,i;

 for(i=2;i<=n/2;i++)

   if(n%i==0)s+=i;

 return s;  

}

int main()

{ int i,j,n;

  scanf("%d",&n);

  for(i=2;i<n;i++)

    if(sum1(i)==i)

    {printf("%d=1",i);

     for(j=2;j<=i/2;j++)

       if(i%j==0)printf("+%d",j);

     printf("
");  

}

 return 0;

}



#include<stdio.h>
int fullNum(int num){ //判断是否是完数
int sum = 0,i;
for(i=1;i<num;i++){
if(num%i==0){
sum+=i;
}
}
return sum==num?1:0;
}
void printfNum(int num){ //输出数的每个因子和的形式:因子A+因子B+.....
int i;
for(i=1;i<=num/2;i++){
if(num%i==0){
if(i!=num/2&&num>i){
printf("%d+",i);
}else{
printf("%d",i);
}
}
}
}
void main(){
int i;
for(i=2;i<=10000;i++){
if(fullNum(i)==1){
printf("%d=",i);
printfNum(i);
printf("\n");
}
}
}

请先给出明确答复:有源码
解释原因:请看
#include "stdio.h"void main(){ int j,k,sum = 0; for(k=2;k<=10000;k++) { sum=0; for(j=1;j<k;j++) if(k%j==0) sum=sum+j; if(sum==k) printf("%d ",k); }}
可以调试一下,反馈一下:


用C语言编程输出10至99之间的所有数中,各位上数字的乘积大于各位数字之...
count用来计数,表示满足条件的数的个数。\/ for(i=10;i<=99;i++){ ge=i%10; \/* 与10取余 *\/ shi=i\/10; \/* 与10取整 *\/ if(ge*shi>(ge+shi)){ printf("%d ",i);count++;} if(count%5==0)printf("\\n"); \/* 通过对5取余的方法实现每行输出5个数 *\/ } } ...

C语言:输出[10,20]之间所有整数的逆序二进制(一行一个输出到屏幕),咋...
代码文本:include "stdio.h"int main(int argc,char *argv[]){ char n,t;puts("The results are as follows:");for(n=10;n<21;n++){ printf("%d:\\t",n);for(t=n;t;t>>=1)printf("%d",t&1);putchar('\\n');} return 0;} ...

c语言编程:求100以内的全部素数,每行输出10个 怎么做啊
\/\/以前做过这题,就复制过来了 include <stdio.h> include <math.h> int main(void){int x,k,flag,n=0; \/*n用来控制每行输出10个数*\/ for(x=2;x<=100;x++){flag=1;for(k=2;k<=sqrt(x);k++)if(x%k==0) {flag=0; break;} if(flag==1){if(n%10==0) printf("\\n...

用计算机C语言编程,程序设计题:从键盘输入十个数,将他们进行降序排列...
scanf("%d",&a[i]); for(i=0;i<9;i++) \/\/降序冒泡排序 for(j=0;j<9-i;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<10;i++) \/\/输出 printf("%d ",a[i]); printf("\\n");...

c语言编程 通过调用函数输出10个乘号 每行8个
include <stdio.h> void print_1(){ int i;for (i=0;i<10;i++){ printf("*");if (i==7) printf("\\n");} } void main(){ print_1();}

C语言:输出[10,20]之间所有整数的逆序二进制(一行一个输出到屏幕),咋...
思路:方法不止一种,我给你写的常规思路:一、通过与2的次方除法,可得十进制对应二进制的位数,再同高位到低位计算,将十进制数转成对应的二进制数(字符串形式)。二、将二进制数字符串,进行倒序,就得到你要的逆序二进制数。三、十进制转二进制,以及字符串倒序分别单独写成函数。适用其它整数。...

C语言编程(高分悬赏)
define n 10 \/\/定义一个宏,做到一改全改 void main( ){ int i;float a[n]; \/\/数组为浮点型 float av; \/\/类型为浮点型,否则可能丢失数据 \/\/输入10个数 for(i=0; i<n; i++)scanf("%f",&a[i]); \/\/少了取地址符'&',并改'%d'为'%f'\/\/输出10个数 for(i=0 ;i...

...输入一个十六进制的数,输出相应的十进制数。用c语言编程...
include<stdio.h> include<math.h> include<string.h> int main(){ char a[10];void convert(char a[]);printf("请输入十六进制数:");gets(a);\/\/输入十六进制数 convert(a);return 0;} void convert(char a[]){ int n,i,num=0;n=strlen(a);for(i=n-1;i>=0;i--){ if(a>...

C语言编程,从键盘输入10个学生的成绩,由高到低排序输出成绩。_百度知 ...
你好,我们这里需要用到数组镶套使用for函数以及冒泡算法,具体的代码如下。include <iostream> using namespace std;int main(){ int s [10], i, j, t;cout << "输入10个数:";for (i = 0; i < 10; i++){ cout << "请输入第" << i+1 << "名学生的成绩;" << endl;cin >...

C语言编程,求500以内的全部素数,每行输出10个。可以提高悬赏哦!_百度...
i <= k;i++){if (n%i == 0) return false;}return true;}int main(){int count = 0; \/\/ 计数器,记录每行输出了多少个for (int i = 2; i <= 500;i++){if (IsPrimeNumbers(i)){printf("%d ", i);count++;if (count % 10 == 0) printf("\\n"); \/\/ 取模 每10...

五华县19717347074: 用C语言输出1到10000之间的所有素数 -
中宣宁嗽: C语言程序如下: #include<stdio.h> int main() { int i,j,k=0; for(i=2;i<10000;i++) { for(j=2;j*j<=i;j++) if(i%j==0) break; if(j*j>i) { printf("%d ",i); k++; if(k%5==0) printf("\n"); } } } 扩展资料: C语言判断素数的思路 思路1:因此判断一个整数m是否...

五华县19717347074: 用c语言输出10000以内的同构数 -
中宣宁嗽: #include int main() {int i,n,t;for(n=1;n<1000;n++){t=n*n;if(n<=10){if(t%10==n)printf("%d * %d = %d\n",n,n,t);else continue;}else if(n<=100){if(t%100==n) printf("%d * %d = %d\n",n,n,t);else continue;}else{if(t%1000==n) printf("%...

五华县19717347074: 编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语言) -
中宣宁嗽:[答案] 刚好在做C++,顺便帮你做下, #include main() { int a,i,sum=0; printf("素数:\n"); for (a=1;a

五华县19717347074: c语言输出1到10000整数 -
中宣宁嗽: 1 2 3 4 5 6 7 8 9#include <stdio.h> intmain() {inti;for(i = 1; i <= 10000; ++i){printf("%d\n", i);}return0; }

五华县19717347074: 求10000以内所有的回数,C语言 -
中宣宁嗽: 完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.10000以内所有完数 C语言代码:#include <stdio.h>/**CopyRight@fantasy0707*/#define N 10000 //完数求解范围 main() { int i,j,sum; //sum用来存放因子之和 for(i...

五华县19717347074: 急急急,c语言问题,求高手帮我看看下面的程序,它要求是把10000以内的完数输出来. -
中宣宁嗽: 错误多得触目惊心int main() {int i=2,m=2,k,sum=1,j=2;while (m<=100){i=2; //重设初始值sum=1; //重设初始值while (i {k=m%i;if (k==0) sum=sum+i;i=i+1;} if (sum-m==0) { //判断为完全数并且输出的部分应该都在if语句内,用大括号...

五华县19717347074: 简单的c语言题目,编程输出10000以内的素数的个数 -
中宣宁嗽: sum=0; for(i=2;i<=10000;i++){for(j=2;j*j<=i;j++)if (i%j==0) break;if (j*j>i) sum++; } printf("%d",sum);变量声明及程序首尾自己加

五华县19717347074: C语言编程6=1+2+3.求出10000所有完数之和. -
中宣宁嗽: #include <stdio.h> void main() { int r,j,i; for(i=1;i<=10000; i++) { r = 0; for(j=1;j<i;j++) { if(i%j == 0) { r = r + j; } } if(r == i) { printf("the result is:%d\n",r); } } }

五华县19717347074: 编写程序输出100到10000以内的所有超级素数. -
中宣宁嗽: 很简单 马上好 楼下学我的走远点113 131 137 139 173 179 191 193 197 199 233 239 293 311 313 317 373 379 419 431 433 439 479 593 599 613 617 619 673 677 719 733 739 797 839 971 977 1319 1373 13 99 1733 1913 1931 1933 1973 ...

五华县19717347074: c语言,求输入一个小写数字输出大写一万以内的就可以 如输入 132 输出 一百三十二 -
中宣宁嗽: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 /* 其实并不难 只是你懒得做而已*/#include<stdio.h> charUnit[][4]={"","十","百","千","万"}; charNumber[][4]={"零",...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网