c语言程序编程(分解质因数)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言程序编程(分解质因数)相关的知识,希望对你有一定的参考价值。

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

参考技术A #include <stdio.h>
int isPrime(int a)

int temp = a;
for(int i = a/2;i>=2;i--)

if(!(temp%i))
return 0;

return 1;


int main()

int a,i=0,flag = 1,t=2;;
printf("请输入你要分解的数: ");
scanf("%d",&a);

printf("%d=",a);
while(a!=1)

while(isPrime(t))

if(a%t==0)

printf("%d",t);
a /= t;
if(a!=1)
printf("*");

else
t++;

t++;

getchar();
return 0;


自己去看,没有写注释,其实简单
参考技术B 首先编写一个判断质数的函数,然后
scanf("%d,&s");
s=a*b*c;
最后用函数判断a、b 、c都是质数就Ok啦!本回答被提问者采纳
参考技术C void foo(long n)

for(int i = 2; i <= n / 2; i++)
if(n % i == 0)
printf("%d*", i);
foo(n / i);
return;



printf("%ld", n);


int main(int argc, char* argv[])

printf("90 = ");
foo(90);

return 0;
参考技术D 给多点分来就把整个程序写给你

c语言 分解质因数

c语言 分解质因数这个乘号要怎么输出?

就是*号,键盘上shift+数字键8

#include <stdio.h>
void main()
int i=2,n;
scanf("%d",&n);
printf("%d=",n);
while(n>1)
if(n%i==0) 
printf("%d*",i);n/=i;
else i++;
printf("\\b \\b");
追问

我的意思是如何在求出公约数的时候输出时带上乘号

要怎么编循环输出乘号?

因为不知道公约数会算出多少个,所以不可能一个一个写printf输出乘号

我是这个意思

可以解答吗

参考技术A

用个flag标记是否输出了第一个数字,然后从第二个开始这样输出:

printf("*%d", i);

追问

能再详细一些嘛

参考技术B printf("*");

以上是关于c语言程序编程(分解质因数)的主要内容,如果未能解决你的问题,请参考以下文章

c语言,用分解质因数的方法求两个数的最大公约数

c语言 分解质因数

C语言,质因数分解

c语言质因数分解题目怎么做

java--编程(分解质因数)

c语言求分解质因数