设为首页 加入收藏

TOP

C++因子和阶乘
2014-04-06 17:40:42 来源: 作者: 【 】 浏览:96
Tags:因子

  给你一个正整数n,把n!=1x2x3x.....xn分解成素因子相乘的形式,并从小到大输出每个素因子的指数,但要保证最后输出的素因子个数不为0。例如825应表示为0,1,2,0,1表示分别有0,1,2,0,1个2,3,5,7,11。

  输入

  第一行有一个整数n(0测试数据;< p>

  接下来n行每行有一个整数 m(1

  输出

  从小到大输出m分解成素因子相乘后各个素因子对应的指数

  样例输入

  2

  5

  53

  样例输出

  3 1 1

  49 23 12 8 4 4 3 2 2 1 1 1 1 1 1 1#include

  #include

  #include

  #include

  #include

  int main()

  {

  int prime[109]={1,1},cost[25],i,j,n=0,m,t;

  for(i=2;i<=10;i++)

  for(j=i;j*i<=100;j++)

  prime[j*i]=1;

  for(i=2;i<=100;i++)

  if(prime[i]==0)

  cost[n++]=i;

  memset(prime,0,sizeof(prime));

  while(scanf("%d",&m)==1)

  {

  for(i=0;i<25;i++)

  if(cost[i]>m)

  break;

  for(n=2;n<=m;n++)

  {

  t=n;

  //printf("%d\n",n);

  for(j=0;j

  {

  n=t;

  // printf("%d %d\n",n,cost[j]);

  if(n/cost[j]==0)

  break;

  while(n%cost[j]==0)

  {

  n=n/cost[j];

  prime[cost[j]]++;

  }

  }

  n=t;

  }

  for(n=0;n

  printf("%d ",prime[cost[n]]);

  printf("\n");

  memset(prime,0,sizeof(prime));

  }

  return 0;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇用C语言LZW编解码算法 下一篇用dup2和dup产生一份拷贝

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: