永发信息网

两道c++问题

答案:4  悬赏:30  手机版
解决时间 2021-11-08 18:58
  • 提问者网友:鐵馬踏冰河
  • 2021-11-08 14:23
两道c++问题
最佳答案
  • 五星知识达人网友:行路难
  • 2021-11-08 14:37
//一、亲密数
#include
int sum_fac( int n )
{
int i,sum ;
sum=0;
for(i=1;iif ( n%i==0 ) sum+=i ;
return sum ;
}

int main()
{
int A,B;
scanf("%d %d",&A,&B);
if ( sum_fac(A)==B && sum_fac(B)==A )
printf( "%d\n" , 1 );
else
printf( "%d\n" , 0 );
return 0;
}
//二、歌德巴赫
#include
int is_prime(int n)
{
int i;
if ( n <= 1 ) return 0;
for( i=2; i<=n/2 ; i++ )
if ( n%i==0 ) return 0;
return 1;
}
int main()
{
int n=0,i;
do{
scanf("%d",&n );getchar();
}while( n<2 && n%2 );
for( i=2;i<=n/2;i++ )
if ( is_prime(i) && is_prime(n-i) )
{
printf("%d=%d+%d\n" , n,i,n-i );
break;
}
return 0;
}
全部回答
  • 1楼网友:逐風
  • 2021-11-08 19:08
#include
#include
int getFactorsSum(int number)
{
//不大于0不合法
if (number<=0) {
return -1;
}

int i,sqrtNumber,sum=0;

sqrtNumber=sqrt(number);

for (i=1; i<=sqrtNumber; i++) {
if (number%i==0) {
sum+=i;

if (i!=1) {
sum+=number/i;
}
}
}
return sum;
}
int isIntimate(int num1,int num2)
{
//不大于0不合法
if (num1<=0 || num2<=0) {
return -1;
}

if (getFactorsSum(num1)==num2
&&getFactorsSum(num2)==num1) {
return1;
}
return0;
}
int main(int argc, constchar * argv[])
{
int num1,num2,result;
printf("Please input two numbers(such as 220 284):");
scanf("%d %d",&num1,&num2);
result=isIntimate(num1,num2);

if (result==1) {
printf("1");
}
if (result==0) {
printf("0");
}
if (result==-1) {
printf("You have illeagal input! ^O^ ");
}
return0;
}
  • 2楼网友:西岸风
  • 2021-11-08 17:34
看来我只能回答第一个了:

#include

int main(int argc, char *argv[])
{
int A = 0;
int B = 0;
printf("输入第一个数A:");
scanf("%d",&A);
printf("\r\n输入第二个数B:");
scanf("%d",&B);
int sum_A = 0;
int sum_B = 0;
for(int i = 1;i < A;i++)
{
if(A%i == 0)
{
sum_A += i;
}
}

for(int j = 1;j < B;j++)
{
if(B%j == 0)
{
sum_B += j;
}
}

if( (A == sum_B)&&(B == sum_A) )
{
printf("%d\r\n",1);
}
else
{
printf("%d\r\n",0);
}

return 0;
}
  • 3楼网友:千夜
  • 2021-11-08 16:10
哥德巴赫猜想
#include
#include
bool isPrime(int num){
if (num==1)
return false;
float a=sqrt(num);
for(int i=2;i<=a;i++){
if (num%i==0)
return false;
}
return true;
}
void main(){
int num;
cin>>num;
for (int i=2;i<=num/2;i++)
{
if (isPrime(i)&&isPrime(num-i))
{
cout< break;
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯