用C语言怎样做出分解质因数啊,请高手们帮个忙吧。

用C语言怎样做出分解质因数啊,请高手们帮个忙吧。,第1张

#

include

"stdio.h"

int

isPrime(int

a)

{

/*判断a是否是

质数

,是质数返回1,仿镇不是质数返回0*/

int

i

for(i=2i<=a-1i++)

if(a

%

i

==

0)

return

0

/*不是质数*/

return

1

/*是质数*/

}

void

PrimeFactor(int

n)

{

/*对参数n分解

质因饥大肆数

*/

int

i

if(isPrime(n))

printf("%d

",n)

else

{

for(i=2i<=n-1i++)

if(n

%

i

==

0)

{

printf("%d

",i)

/*第一个因数一定是质因数*/

if(isPrime(n/i))

{

/*判断第二个因数是否是质数*/

printf("%d

",n/i)

break

/*找烂轿到全部

质因子

*/

}

else

PrimeFactor(n/i)

/*递归地调用PrimeFactor

分解n/i

*/

break

}

}

}

main()

{

int

n

printf("Please

input

a

integer

for

getting

Prime

factor\n")

scanf("%d",&n)

PrimeFactor(n)

/*对n

分解质因数

*/

getche()

}

题目有些难度,我先简单提醒下你,一会把梁改完善答案再代码写出来

①发现因子是逐渐减小的

②举例30=5*3*2,30%5==0,应该明白左边这盯含个式子吧!30能被5整除,另外30/5等于6,而

6%3==0,6/3等于2,2%2==0,2/2等于1,也就是说用取余使得余数(假设为a)为0,然后

原数n运算n/=a,凯渣笑然后再取余知道n/=a之后n==0则退出循环

说的不是很明白,一会儿看代码吧,马上写出来


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8251272.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存