A. c语言中求完全数
#include <stdio.h>
#include <math.h>
int main()
{
int a,i;
for(a=1;a<=1000;a++){
int A[100]={0},j;
j=0;
for(i=1;i<a;i++){ //i<sqrt(a) ——》并不是判定质数,需要找出除本身外所有因数
if(a%i==0){ //a/i==0 ——》/是求商,%才是取余
A[j]=i; //A[j]=a ——》A[j]应存储的是a的因数,而不是它本身
j++;
}
}
int n,b;
n=j;
b=a;
for(j=j-1;j>=0;j--){
b=b-A[j];
}
if(b==0){
printf("%d=",a);
for(j=0;j<n-1;j++){
printf("%d+",A[j]);
}
printf("%d\n",A[j]);
}
}
return 0;
}
B. C语言求完数
/*完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)*/
#include<stdio.h>
void main()
{
int i,j,k,h,s,sum;
int a[200];//20个是不够的
s=0;
sum=0;
for(i=2;i<=1000;i++)
{
s=0;//此处s=0一定要加,因为前几次循环的时候s的值已经改变
k=0;
for(j=1;j<i;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;h<k;h++)
{
s+=a[h];
}
if(i==s){printf("%d ",i);sum++;}
}
printf("完数的个数:%d\n",sum);
}
时间太紧,没注意程序的简洁性和效率,这个需要你自己改了!
C. 运用c语言输出100以内所有的完全数
#include<stdio.h>
int main()
{
int x, i, sum;
for (x = 3; x <= 1000; x++)
{
sum = 1; //初始化sum
for (i = 2; i <= x/2 ; i++) //从2开始,1不是完数
{
if (x%i == 0)sum +=i;
}
if (sum == x)printf("%d its factors are 1 ", x);//找到完数,感觉是为了“,”处理方便,所以在这里的末尾加了1
if (sum == x)
{
for (i = 2; i <= x / 2; i++)
{
if (x% i == 0)printf(",%d ", i);//找到完数的因子
}
printf(" ");
}
}
return 0;
}
(3)求完全数数c语言代码扩展阅读:
如果一个数恰好等于它的因子之和,则称该数为“完全数”。
第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。
第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。
D. c语言编程 计算1000以内的完全数,每8个数字一行。
#include <stdio.h>
int main()
{
int x,k,f=0,n;
for(x=2;x<=1000;x++)
{
n=0;//注意每次循环n都要为0
for(k=1;k<x;k++)//注意k要从1开始
if(x%k==0)
n=n+k;
if(n==x)
{
printf("%d ",x);
f++;
if(f%8==0)
printf("\n");
}
}
}
//其实1到1000内只有6 28 496这三个
E. 运用c语言输出100以内所有的完全数
1、首先打开vs 2017软件,打开一个准备好的工程,新建一个C语言文件,先写入头文件和main函数,里面定义需要的用到的4个变量。
F. 用c语言怎样编写n个数以内的完全数的程序
完全数是指所有真因子之和等于该数本身的正整数。可以使用以下C语言代码来找出小于等于n(n为正整数)的完全数:
```c
#include <stdio.h>
int main() {
int n, i, j, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = 1; i <= n; ++i) {
sum = 0;
for (j = 1; j <= i / 2; ++j) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
解释如下:
1. 首先,定义变量n、i、j和sum。
2. 要求用户输入n。
3. 使用两个嵌套的循环来遍历从1到n的每个数字。
4. 内部手宴循备肢环计算数字i的所有真因子之和。
5. 如果该总和等于仿薯世数字i本身,则输出该数字,即它是一个完全数。
6. 最后返回0结束程序。
注意,此代码中包含了一个优化,即内部循环只需要遍历1到i的一半,因为大于i的一半的因子已经在之前被计算过了。
G. C语言程序调试(求正整数n以内的所有完全数)
#include"stdio.h"
int
main()
{
int
i,j,sum,n;
printf("求正整数n以内的所有完全数");
printf("\n解:\n请输入n:\n");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
sum+=j;
}
if(sum==i)
printf("%d\n",i);
}
}