c语言分解质因数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言分解质因数相关的知识,希望对你有一定的参考价值。
#include "stdafx.h"
main()
int n,i;
printf("\nplease input a number:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
while(n!=i)
if(n%i==0)
printf("%d*",i);n=n/i;
else break;
printf("%d",n);
printf("\n");
为什么while(n!=i)?
当n=90,显示90=2*3*3*5,为什么没有while(n!=i),显示90=2*3*15?
外层的 for循环 表示 i 越来越大 变量i用来试探每一个小于n的数是否为因子
内存的while循环表示 n 越来越小 表示i 是否为 一个因子 这个因子共出现几次。
n 会越来越小 但是不能小于i 否则就跳出while循环。所以要写 while(n!=i) 参考技术A if((n%i==0)&&(i!=n))
n=n/i;
printf("*%d",i);
这个地方,i作为n的因数不一定只出现一次
所以应该用while循环,让n=n/i直到无法除尽,否则可能影响后面的因子
if((n%i==0)&&(i!=n))
while(n%i==0)
n=n/i;
printf("*%d",i);
参考技术B 因为可能有多个质因数i
以上是关于c语言分解质因数的主要内容,如果未能解决你的问题,请参考以下文章