C语言程序设计:分解素因子

C语言程序设计:分解素因子,第1张

#include <iostream>

using namespace std

int main()

{

int *a,n

cout<迅裤<"输入:"

cin>>n

a=new int[n]

for(int i=0i<ni++)

cin>>a[i]

for(int i=0i<亩搜简ni++)

{

for(int j=2,k=0,x=a[i]j<=a[i]j++)

{

for(x>0k++)

{

if(x%j==0)

{

if(k!=0) cout<<漏销'*'

cout<<j

x/=j

}

else break

}

}

cout<<endl

}

delete []a

return 0

}

//貌似楼上几位都忘了重复测试i能否整除目标整数?

#include <iostream>

using namespace std

void main()

{

long N,N2,i,t,count

cout<<"<因式分解>"<<endl

cout<<"本程序中N和1不视作N的因子。"<<endl

while(1){

cout<<"请输入一个正整数N:"

cin>>NN2=N

count=0t=N/2 //大于N/2的数不能成为N的因子。(本早宴程序中N本身不算N的一个因子)

for(i=2i<=ti++){

if(N%i==0){

if (++count==1) cout<<"N="<<N<<"="

cout<<iN/=i

if(N!=1) cout<<"×"搜拆

i-- //再次测试陆漏银i是否还能成为N的因子

}

if(N==1) break

}

if(count==0) cout<<N2<<"是质数。"<<endl

cout<<endl<<endl

}

}

不是分解质因数,对吗?

分解质因数简单,分解咐槐因数要难些,利用姿携回溯可以做,以下是我写的代码,看一看是否是你想要的。

#include "stdio.h"

#include "stdlib.h"

#include "ctype.h"

typedef int Integer[100]

Integer s

int t=0

int D

void dd(int m,int n)

void main()

{

printf("输入一个大于3的正整数衡册友:")

do

{

scanf("%d",&D)

if(D<=3)

{

printf("输入错误,请重新输入!")

}

else

{

break

}

}while(D>3)

dd(2,D)

}

void dd(int m,int n)

{

int i,j,k

i=m

j=n

if(i<=j/i)

{

if(j % i==0)

{

t=t+1

s[t]=i

for(k=1k<=tk++)

{

printf("%d*",s[k])

}

printf("%d=%d\n",j/i,D)

dd(i,n/i)

t=t-1

dd(i+1,j)

}

else

{

dd(i+1,j)

}

}

}


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

原文地址: http://outofmemory.cn/yw/12388005.html

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

发表评论

登录后才能评论

评论列表(0条)

保存