YBT:1154:亲和数
#include
using namespace std;
bool isAmicable(int n)
{
int k;
for(int i=1;i<=n;i++)
{
if(n%i==0&&i!=n)
return true;
}
for(int j=1;j<=k;j++)
{
if(k%j==0&&j!=k)
return true;
}
return true;
}
int main()
{
int a[101],b[101],l,s1=0,s2=0,min=10000,a,b;
for(l=1;l<=100;l++;)
{
for(int i=1;i<=l;i++)
{
if(isAmicable(i))
a[l]=l;
s1+=a[l];
}
for(int j=1;j<=l;j++)
{
if(isAmicable(j))
b[l]=l;
s2+=b[l];
}
if(s1==b[l]&&s2==a[l]&&b[l]!=a[l]&&a[l]
{
if(min>a[l]+b[l])
{
a=a[l];
b=b[l];
}
}
}
cout<
return 0;
}
为什么编译错误?
#include <bits/stdc++.h>
using namespace std;
bool isAmicable(int n) {
int k;
for (int i = 1; i <= n; i++) {
if (n % i == 0 && i != n)
return true;
}
for (int j = 1; j <= k; j++) {
if (k % j == 0 && j != k)
return true;
}
return true;
}
int main() {
int a[101], b[101], l, s1 = 0, s2 = 0, min = 10000, A, B;
for (l = 1; l <= 100; l++) {
for (int i = 1; i <= l; i++) {
if (isAmicable(i))
a[l] = l;
s1 += a[l];
}
for (int j = 1; j <= l; j++) {
if (isAmicable(j))
b[l] = l;
s2 += b[l];
}
if (s1 == b[l] && s2 == a[l] && b[l] != a[l] && a[l] < b[l]) {
if (min > a[l] + b[l]) {
A = a[l];
B = b[l];
}
}
}
cout << A << " " << B;
return 0;
}
因为你的变量名a和数组a在下面它认为你是用表示数组的a去接收赋值,避免这样命名