回 帖 发 新 帖 刷新版面

主题:帮忙呀,高手们!!!谢谢!!!!

若某整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28* 2,试求[1,7000]之内:(1)有多少个多因子完备数?(2)其中最大一个多因子完备数?(3)其中第二大多因子完备数?
  我编了下,可老是算不出来 

 麻烦帮下 用C写!谢![em8]
[fly]麻烦帮下啦 谢!!![/fly]

回复列表 (共10个回复)

沙发


[fly]怎了 大哥兄弟姐妹们?吾该帮下小弟啊 [/fly][em10]

板凳

这是不是你想要的

#include    <stdio.h>

void    main()
{    int    i,j,k,max,secmax,count=0,sum;
    int    a[1000];
    for(i=max=secmax=1;        i<=7000;    i++)
    {       k=0;
        for(j=1;    j<=i;    j++)
            if(i%j==0)    a[k++]=j;
        for(j=0,sum=0;    j<k;    j++)
            sum+=a[j];
        if(sum%i==0)
        {    count++;
            if(i>max)
            {    secmax=max;    max=i;
            }
        }
    }
    printf("\ncount=%d,max=%d,secmax=%d",count,max,secmax);
}

3 楼


[fly]谢谢2搂的老大罗!![/fly]

4 楼



#include<stdio.h>
#define ERROR 0
#define OK 1
#define N 3277
typedef int status;
int array[N];
status calculate(int x,int y)
{int i,sum=0;
for(i=0;i<x;i++)
  sum+=array[i];
  if(sum%y)
    return OK;
   else return ERROR;
}

main()
{
int num,i,j,count=0,big=0;
for(num=1;num<7000;num++)
{
j=0;
  for(i=1;i<num;i++)
  {
   if(!(num%i))
    {
     array[j]=i;
     j++;
    }
  }
   if(calculate(j,num))
   {
    count++;
  if(num>big)
   big=num;
  }
}
printf("\nthe num of wbeishu is:%d",count);
printf("\nthe biggest shu (1~7000) is:%d",num);
num--;
while(1)
{
j=0;
for(i=1;i<num;i++)
  {
   if(!(num%i))
    {
     array[j]=i;
     j++;
    }
  }
if(calculate(j,num))
  break;
num--;
}
printf("\nthe co-biggest shu is:%d",num);
}

5 楼


  题目内容:编号为1,2,…,n的几个人按顺时针方向围坐一圈, 每个持有一个密码(正整数)。开始取任一个正整数作为报数上限值m, 并从第一人开始按顺时针方向开始顺序报数。报到m时停止报数,报m的人出列。然后报此数的人密码作为新的m 值,并从顺时针方向上紧挨他的下一个重新自1报数。如此进行下去,直到所有人全部出列为止。若输入m值为1,则顺序出队。试设计一个求出列顺序的程序。


[fly]谢谢4楼的大哥了 俺老当然支持你啦 再帮我编多个 这个实在棘手 难:麻烦你了[/fly]

6 楼

很多地方有例子程序的,你找例子程序吧,再按你自己的要求进行修改

7 楼

6楼的大哥 怎么那个程序的结果同答案不一样的!我调了下 还是得不到啊??????
[fly]6楼的大哥 怎么那个程序的结果同答案不一样的!我调了下 还是得不到啊??????[/fly][em3][em3]

8 楼

答案是:
count=6,max=672,secmax=496

9 楼

答案是;coun=6  max=8128,secmax=2016

10 楼

答案是coun=4  max=8128,secmax=496.

我来回复

您尚未登录,请登录后再回复。点此登录或注册