利用c语言程序设计做这个程序:将一个正整数分解成质因数的乘积,比如:输入90.,打印出90=2*3*3*5

如题所述

这是我的一个用C#写的程序,可以参考: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 {class Program {static bool IsPrime(int num) {for(int i=2;i<=Math.Sqrt(num);++i) {if (num % i == 0) {return false; }}return true; }static string GetChengJi(int num) {StringBuilder sb=new StringBuilder(); while (num !=1) {for (int i = 2; i <= num; i++) {if (IsPrime(i) && num % i == 0) {sb.Append(i+"*"); num /= i;break; }}}return sb.Remove(sb.Length-1,1).ToString(); }static void Main(string[] args) {Console.WriteLine("请输入一个数字,系统将自动分解质因数:\n"); int num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(num+"="+GetChengJi(num)); }}}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-03
#include <stdio.h>

int main()
{
int n, i, c;
scanf("%d", &n);
i = 2; c = n;
printf("%d=", n);
while(n != 1)
{
if(n%i == 0) {
printf("%s%d", c == n ? "" : "*", i);
n /= i;
} else ++i;
}
}本回答被网友采纳
第2个回答  2013-06-03
#include<stdio.h>

void main()
{
int a,n;
scanf("%d",&n);
printf("n=");
for(a=2;a<=n;a++)
if(n%a==0)
{n/=a;<br>printf("%d",a);</p><p>if(n!=1)<br>printf("*");<br>a=1;}
}
相似回答