网站建设资讯

NEWS

网站建设资讯

c语言函数分解质因数 c语言 分解因数

C语言算法之分解质因数

求出区间[a,b]中所有整数的质因数分解。

创新互联公司专业为企业提供宣城网站建设、宣城做网站、宣城网站设计、宣城网站制作等企业网站建设、网页设计与制作、宣城企业网站模板建站服务,10余年宣城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

输入

输入两个整数a,b。

输出

每行输出一个数的分解,形如k=a1*a2*a3...(a1=a2=a3...,k也是从小到大的)(具体可看样例)。

样例输入

3 10

样例输出

3=3

4=2*2

5=5

6=2*3

7=7

8=2*2*2

9=3*3

10=2*5

蓝桥杯

#includestdio.h

#includemath.h

int factor(int n)

{

int i,j=(int)sqrt(n);

if(n%2==0) return 2;

for(i=3;i=j;i++)

if(n%i==0) return i;

return n;

}

int main()

{

int i, j, k, m, n;

scanf("%d%d", m, n);

for(i=m;i=n;i++)

{

j=factor(i);

k=i/j;

printf("%d=%d",i,j);

while(k1)

{

j=factor(k);

k=k/j;

printf("*%d", j);

}

printf("\n");

}

return 0;

}

分解质因数牛逼方法

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

#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;

}

自己去看,没有写注释,其实简单

c语言 分解质因数

代码:

#includestdio.h

int main()

{

int a[6555], i, j, t=1;

a[0]=2;

for(i=3;i65540;i+=2)

{

for(j=2;j*j=i;j++)

{

if(i%j==0)

break;

}

if(j*ji)

{ a[t]=i;  t++; }

}

int n, n1, n2, x, y, f=0 ;

while(scanf("%d",n)!=EOF)

{

x=0;

for(i=0;a[i]=n;i++)

if(a[i]==n)

{

printf("%d=1*%d\n", n, n);

x=1;

}

if(x==0){

printf("%d=", n);

for(i=0;a[i]n;i++)

{

if(n%a[i]==0)

{

n=n/a[i];

printf("%d*",a[i]);

i--;

}

}

printf("%d\n",n);}

}

return 0;

}

思路就是求出所有素数,然后从素数 2 开始,找可以把n整除的素数,(每次都从素数2开始找,而且找到后要更新n的值)

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

#

include

"stdio.h"

int

isPrime(int

a)

{

/*判断a是否是

质数

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

int

i;

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

if(a

%

i

==

0)

return

0;

/*不是质数*/

return

1;

/*是质数*/

}

void

PrimeFactor(int

n)

{

/*对参数n分解

质因数

*/

int

i;

if(isPrime(n))

printf("%d

",n);

else

{

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

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();

}

c语言求分解质因数

有这样几个问题:

声明的二维数组是aaa,但代码中应用时又变成了a,会产生a未定义错误。

int aaa[3][100000];数组太大,建议使用全局变量或动态数组;改成int a[3][1000];更好。

a[3][z]=a[1][j];这里和jj=a[3][z]*1;这里数组a都越界了。声明的a第一维是3,即0、1、2,不可能有[3]。

把这些错误改了再说。


名称栏目:c语言函数分解质因数 c语言 分解因数
本文链接:http://cdweb.net/article/hhsjph.html