1. c语言:怎么求完数
先定义一个数组a[]放各因数——一定有“1”
然后定义一个数组b[999]={1,2,3,4,5……}可以用for语句赋值int i,p;
for(i=0;i<=998;i++)
{for(p=1;p<=999;p++);
b[i]=p;}放1——999
然后用各各数——可再定义数组——去剩b[]
得余数为零的放到a[]再各各无素相加等于原来的剩数的,
就为真——用一个循环,一个int变量加一,直到 结束
2. 用C语言编程求完数
那叫完全数,这题可以用三重循环解决,外环一个一个找数,内环试验是否全部能整除,中环试验加起来是不是那个数,麻烦得很
3. c语言:列出完数及其因子
#include <stdio.h>
#include <conio.h>
void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i<m;i++) //寻找在1到m之间,有多少m的因子
if(m%i==0) //如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6 28 496
请参考
4. C语言,求完数因子
#include<stdio.h>inta[110];intmain(){intsum=0,i,n,j,sizes;printf("输入一个数:");scanf("%d",&n);for(i=1;i<=n;i++){sum=0,sizes=0;for(j=1;j<i;j++){if(i%j==0){sum+=j;a[++sizes]=j;}}if(sum==i){printf("%disfactorsare:",i);for(j=1;j<=sizes;j++)printf(j==sizes?"%d. ":"%d,",a[j]);}}return0;}开个数组储存一下因子即可。
5. C语言求完数因子
#include<stdio.h>
inta[110];
intmain()
{
intsum=0,i,n,j,sizes;
printf("输入一个数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0,sizes=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
a[++sizes]=j;
}
}
if(sum==i)
{
printf("%disfactorsare:",i);
for(j=1;j<=sizes;j++)
printf(j==sizes?"%d. ":"%d,",a[j]);
}
}
return0;
}
开个数组储存一下因子即可。
6. 用c语言求1000之内的完数 要求输出完数的因子
#include "stdio.h"
//判断n是否是完数
bool isWanShu(int n)
{
int sum=0, j;
for(j=1;j<n;j++)
{
if(0==n%j) sum+=j;
}
if(sum==n) {
printf("%d 是完数, ", n);
return true;
} else {
return false;
}
}
//输出整数的n的因子(自身除外)
void printFactor(int n)
{
int i;
printf("%d 的因子: ", n);
for(i=1; i<n; i++) {
if(n%i==0) printf("%d ", i);
}
printf("\n");
}
int main()
{
int i;
for(i=1; i<=1000; i++) {
if ( isWanShu(i)) { //如果i是完数,则输出它的因子。
printFactor(i);
}
}
return 0;
}
输出结果:
6 是完数, 6 的因子: 1 2 3
28 是完数, 28 的因子: 1 2 4 7 14
496 是完数, 496 的因子: 1 2 4 8 16 31 62 124 248
7. c语言求解完数!
#include<stdio.h>
int main()
{
int i,j,sum=0;
int count=0;//计算完数的和
for(i=2;i<1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0) sum=sum+j;
}
if(sum==i)
{
printf("%d 是完数\n",i);
count+=i;
}
sum=0;
}
printf("完数和为: %d\n",count);
return 0;
}
8. C语言求完数
int main()
{
int i,j,sum;
for(i=2;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
printf("It's a Perfect n:%d\n",i);
}
getchar();
getchar();
return 0;
}
我觉得temp,没有用的必要,错误在于第一次循环之后sum的值已经不为0了,无法记录下一个i 的因子之和,所以要在第一层循环里有sum=0;这个语句,现在你在试试,看看是不是运行正确了。
9. C语言函数输出完数和因子
这是我编写的 你编写的 要注意 每次进行外循环都要把 s初始化为 0 否则就是用上一次的值
#include <stdio.h>
int main()
{
int i,j,n,sum;
printf("请输入一个数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum+=j;
if(sum==i)
{
printf("完数为:%d\t它的约数是:",i);
for(j=1;j<i;j++)
if(i%j==0)
printf("%4d",j);
printf("\n");
}
}
return 0;
}
10. c语言:列出完数及其因子
#include
void
main(
)
{
int
k,l,m,n;
printf("please
input
n:\n");
scanf("%d",&n);
for(k=1;k<=n;k++)
{
//求k值的因子,由于k/2到k之间没有k的因子,故为提高效率,将for条件语句结束值设置为k/2
for(m=0,l=1;l<=k/2;l++)
if(!(k%l))
//k%l为k除l的余数,!(k%l)为k除l的余数为0,即k被l整除,l是k的因子
m+=l;//k的因子求和
if(m==k)//如果k的因子之和=k,则输出
printf("%4d",k);//%4d为printf的输出格式对齐,不够4位补空格
}
}