C语言 将一个正整数分解质因子 例如:输入90,打印出90=2*3*3*5
2个回答
2013-04-25
展开全部
#include <stdio.h>void main(){ int n, i; printf("Enter a positive integer: "); scanf("%d", &n); printf("%d=", n); i = 2; while (i < n) { if (n % i == 0) { printf("%d*", i); n /= i; } else ++i; } printf("%d\n", n);} 注:这是一个更简洁的写法,我提出来供大家参考。其实不需要测试 i 是否质数。假如 i 是合成数,比 i 小的 i 的质因数早就除掉了。而且 i < n 的循环用 while 不用 do-while,最后不需要倒退擦掉一个 *。
2013-04-25
展开全部
#include <stdio.h>
int prime(int n)
{
int i;
if(n<2)return 0;
for(i=2;i<n;i++)
if(n%i==0)return 0;
return 1;
}
void main()
{
int n,i;
printf("输入一个>2的正整数:");
scanf("%d",&n);
printf("%d=",n);
i=2;
do
{
if(n%i==0&&prime(i))
{
printf("%d*",i);
n/=i;
}
else i++;
}while(n>1);
printf("\b");
printf(" \n");
}
int prime(int n)
{
int i;
if(n<2)return 0;
for(i=2;i<n;i++)
if(n%i==0)return 0;
return 1;
}
void main()
{
int n,i;
printf("输入一个>2的正整数:");
scanf("%d",&n);
printf("%d=",n);
i=2;
do
{
if(n%i==0&&prime(i))
{
printf("%d*",i);
n/=i;
}
else i++;
}while(n>1);
printf("\b");
printf(" \n");
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询