首先,我们先搞清概念,亲和数指的是两个数的 除去自身以外的 约数。。
6 除去自身以外的约数是什么呢:1 2 3
对于程序,我想说,你晕过头了!!
错误出现在最后的if else 判断,我们需要判断的是:
数组a所有元素的和是284
数组b所有元素的和是220
而不是判断 这两个数组所有元素和 相等!!
所以最后的if else就随你怎么改了:
if(sum1==284 && sum2==220) printf("R\n") // if(sum1==y && sum2==x) printf("R\n")
else printf("W\n")
#include<stdio.h>int main(){int a,i,b,n,y,zprintf("There are following friendly–numbers pair smaller than3000:\n")for(a=1a<3000a++) /*穷举3000以内的全部整数*/{for(b=0,i=1i<=a/2i++) /*计算数a的各因子,各因子之和存放于b*/if(!(a%i))b+=i/*计算b的各因子,各因子之和存于n*/for(n=0,i=1i<=b/2i++) if(!(b%i))n+=iif(n==a&&a<b)printf("%4d..%4d\n ",a,b)/*若n=a,则a和b是一对亲密数,输出*/}printf("请输入两个数\n") scanf ("%d %d",&y,&z) for(a=1a<10000a++)/*穷举 10000 以内的全部整数*/ {for(b=0,i=1i<=a/2i++) /*计算数 a 的各因子,各因子之和存放于 b*/ if(!(a%i)) b+=i/*计算 b 的各因子,各因子之和存于 n*/for(n=0,i=1i<=b/2i++) if(!(b%i)) n+=i if(n==a&&a<b) if((a==z&&b==y)||(b==z&&a==y)) {printf("%4d %4d 是亲密数\n",a,b)/*若 n=a,则 a 和 b 是一对亲密数,输出*/break } if(a==9999) printf("%d,%d不是亲密数\n",y,z) }}//c语法#include
#include
int
main(int
argc,char
*argv[])
{
long
num1,num2,min,max
srand(time(null))
printf("请指定范围:")
scanf("%ld
%ld",&min,&max)
while(1)
{
num1=rand()%(max+1)+min
num2=rand()%(max+1)+min
if(0==num1%2
&&
1==num2%2)
{
break
}
}
printf("%ld*%ld=%ld",num1,num2,num1*num2)
system("pause")
return
0
}
//c#语法
using
system
namespace
t
{
class
program
{
public
static
void
main(string[]
args)
{
int
num1,num2,min,max
random
r=new
random(datetime.now.millisecond)
console.writeline("请指定范围,每行一个:")
try
{
min=convert.toint32(console.readline())
max=convert.toint32(console.readline())
while(true)
{
num1=r.next(min,max+1)
num2=r.next(min,max+1)
if(0==num1%2
&&
1==num2%2)
{
break
}
}
console.writeline("{0}*{1}={2}",num1,num2,num1*num2)
}
catch(exception
)
{
}
console.write("按任意键退出。")
console.readkey(true)
}
}
}