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语言程序编程(分解质因数)的主要内容,如果未能解决你的问题,请参考以下文章