求Python的质因数分解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求Python的质因数分解相关的知识,希望对你有一定的参考价值。

x=eval(input("请输入小于1000的整数:"))

k=2

print(x,"=",end="")

while x>1:

    if x%k==0:

        print(k,end="")

        x=x/k

        if x>1:

            print("*",end="")

    else:

        k=k+1

参考技术A 首先设置函数判断是否是质数,然后依次进行分解

c语言求分解质因数

#include<stdio.h>
void main()

int aaa[3][100000];
int m,n,i,j,x=0,y=0,z=0,jj;
printf("输入m,n,必须是整数!");
scanf("%d%d",&m,&n);
for(i=2;i<=m;i++)

if(n%i==0)

a[1][x]=i;
x=x+1;




for(j=2;j<=n;j++)

if(n%i==0)

a[2][y]=i;
y=y+1;



for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

if(a[1][0]==a[2][0])

a[3][z]=a[1][j];
z=z+1;



for(z=0;z<=(m+n);z++)

jj=a[3][z]*1;

printf("%d",jj);


出现错误error C2106: '=' : left operand must be l-value
error C2109: subscript requires array or pointer type

有这样几个问题:

    声明的二维数组是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]。

    把这些错误改了再说。

追问

哇!!秒懂!

我再看看!

还是不太对!是不是小于等于那里问题

追答

一细看还有错误啊——
void main(void)
int a[3][1000];//00
int m,n,i,j,x=0,y=0,z=0,jj;
printf("输入m,n,必须是整数!");
scanf("%d%d",&m,&n);
for(i=2;i<=m;i++)

if(n%i==0)//这里好像应该是m%i吧?

a[1][x]=i;
x=x+1;


for(j=2;j<=n;j++)

if(n%i==0)//这里好像应该是n%j吧?

a[2][y]=i;//应该是=j吧?
y=y+1;


for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

if(a[1][0]==a[2][0])//这里是只和[0]比较吗?

a[3][z]=a[1][j];//这里的a[3][z]里的[3]改成什么了?
z=z+1;



for(z=0;z<=(m+n);z++)//这里循环了,但下面却只取了最后结果,没理解啊!

jj=a[3][z]*1;//这里的a[3][z]里的[3]改成什么了?

printf("%d",jj);

参考技术A 你数组定义的名为aaa,但其它地方又是a追问

改了之后显示页面

一按出去了

以上是关于求Python的质因数分解的主要内容,如果未能解决你的问题,请参考以下文章

c语言求分解质因数

求n!质因数分解之后素数a的个数

C++实例 分解质因数

分解质因数分解质因数是啥意思? 12分解质因数是??

poj2992 divisors 求组合数的约数个数,阶乘的质因数分解

Python3 分解质因数