将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5,其中质数的判断单独编写为一个函数。python
时间: 2024-05-21 22:10:17 浏览: 125
def is_prime(n):
"""
判断一个数是否为质数
"""
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
def prime_factorization(n):
"""
将正整数n分解质因数
"""
if n <= 1:
return str(n) + "没有质因数分解"
result = str(n) + "="
factor = 2
while n > 1:
if n % factor == 0 and is_prime(factor):
result += str(factor) + "*"
n //= factor
else:
factor += 1
return result[:-1]
print(prime_factorization(90)) # 输出 90=2*3*3*5
相关问题
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
将一个正整数分解质因数是指将这个正整数分解成若干个质数的乘积的形式。例如,将90分解质因数,可以得到90=2*3*3*5。分解质因数的方法有多种,其中一种常用的方法是从最小的质数开始,不断地将这个数除以最小的质数,直到无法再被整除为止。然后再从下一个最小的质数开始,重复上述步骤,直到这个数被分解成若干个质数的乘积为止。下面是一个C语言的程序示例:
#include <stdio.h>
int main() {
int n, i;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d=", n);
for (i = 2; i <= n; i++) {
while (n % i == 0) {
printf("%d", i);
n /= i;
if (n != 1) {
printf("*");
}
}
}
printf("\n");
return 0;
}
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
将一个正整数n分解质因数的基本思想是:不断地除以小于等于n的最小质数,直到n=1为止。
算法流程如下:
1. 初始化一个空字符串用于存储分解后的质因数
2. 从2开始遍历到n,如果当前数是质数,并且n能整除当前数,那么就将当前数存入字符串中,同时n除以当前数,直到n=1为止。
例如:
输入90,
第一次遍历到2时,90不能整除2;
第二次遍历到3时,90能整除3,将3存入字符串中,n=90/3=30;
第三次遍历到4时,30不能整除4;
第四次遍历到5时,30不能整除5;
第五次遍历到6时,30不能整除6;
第六次遍历到7时,30不能整除7;
第七次遍历到8时,30不能整除8;
第八次遍历到9时,30能整除9,将9存入字符串中,n=30/3=10;
第九次遍历到10时,10能整除10,将10存入字符串中,n=10/10=1;
所以90=2*3*3*5.
阅读全文