大众计算机学习网

专门提供各种电脑教程

C程序的算法:将正整数分解质因数

Admin | 2007-12-20 20:55:30 | 被阅次数 | 9944

  问题需求:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

  需求分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

  A、如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

  B、如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

  C、如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

  程序源代码:

  main()
  {
  int n,i;
  printf("\nplease input a number:\n");
  scanf("%d",&n);
  printf("%d=",n);

  for(i=2;i<=n;i++)
   {
    while(n!=i)
    {
     if(n%i==0)
     { printf("%d*",i);
      n=n/i;
     }
     else
      break;
    }
  }

  printf("%d",n);
  }