亲和数 c语言

Python018

亲和数 c语言,第1张

首先,我们先搞清概念,亲和数指的是两个数的   除去自身以外的   约数。。

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)

}

}

}