算亲密数
我想算215与75是否为亲密数
#include <stdio.h>
#include <conio.h>
void main()
{
int a = 215,b = 75 , c , d , i=1 , j=1;
for (c = 1 , i = 0; c <= a;c++);
{
if (0 == a % c)
{
i+=c;
}
}
for (d = 1 , j = 0; d <= b;d++);
{
if (0 == b % d)
{
j+=d;
}
}
printf( "%d|%d\n ",a,b);
printf( "%3d|%d ",i,j);
getch();
}
后来,我想看一下i,j最后到底是多少。
我一看,是0。我又调试了一下,发现它根本没有执行那个循环,有人能告诉我是为什么吗
[解决办法]
for (c = 1 , i = 0; c <= a;c++);//多了一个分号
[解决办法]
#include <iostream>
#include <cmath>
using namespace std;
int yinzi(int m)
{
int h=0;
for(int i=1;i <=m/2;i++)
{
if(m%i==0)
{
h+=i;
}
}
return h;
}
void main()
{
int m,n;
cout < < "输出0到10000的亲密数 " < <endl;
for(int i=2;i <=10000;i++)
{
m=yinzi(i);
yinzi(m);
if((i==yinzi(m))&&(m!=i))
{
cout < <i < < "和 " < <m < < "是亲密数 " < <endl;
}
}
cin> > n;
}
[解决办法]
for (c = 1 , i = 0; c <= a;c++);//多了一个分号
[解决办法]
#include <stdio.h>
#include <conio.h>
void main()
{
int a = 215,b = 75 , c , d , i=1 , j=1;
for (c = 1 , i = 0; c <= a;c++); // 多了个分号
{
if (0 == a % c)
{
i+=c;
}
}
for (d = 1 , j = 0; d <= b;d++); // 多了个分号
{
if (0 == b % d)
{
j+=d;
}
}
printf( "%d|%d\n ",a,b);
printf( "%3d|%d ",i,j);
getch();
}