基于C语言--分解因子

一、 分解因子

题目要求:
任何一个整数N(N ≠ 0)都可以分解成1一些质数(素数)因子的形式,例如N= 150,可分解成1 * 2 * 3 * 5 * 5,N = -150时,可分解成-1 * 2 * 3 * 5 * 5。试编写程序。

二、完整代码

//分解因子,如150 = 1*2*3*5*5 

#include <stdio.h>
#include <stdlib.h>

#define MAX 1000

int main()
{
	int num, n, a[MAX], j;
	j = 0;
	printf("请输入一个整数:\n");
	int p = scanf("%d", &num);
	if(p == 1){
		if(num == 0){
			printf("0不能再进行分解!\n");
		}else if(num > 0){
			printf("%d可分解成:\n", num);
			for(int i = 2; i <= num; i++){
				n = num % i;
				if(n == 0){
					a[j] = i;
					j++;
					num = num / i;
					if (num == 1) {
						break;
					}
					i = 2;
				}
			}
			printf("1");
			for(int i = 0; i < j; i++){
				printf(" * %d", a[i]);
			}
		}else {
			printf("%d可分解成:\n", num);
			int s = abs(num);
			for(int i = 2; i <= s; i++){
				n = num % i;
				if(n == 0){
					a[j] = i;
					j++;
					num = num / i;
					if (num == 1) {
						break;
					}
					i = 2;
				}
			}
			printf("-1");
			for(int i = 0; i < j; i++){
				printf(" * %d", a[i]);
			}
		}
	}else{
		printf("输入有误!\n");
	}
	return 0;
}

三、测试

输入:
零(不能为0):
在这里插入图片描述

正整数:
在这里插入图片描述
负整数:
在这里插入图片描述

四、总结

无论是什么题目,都要先理清楚它的整个执行过程,再思考怎么用程序来编写,编写过程中也要注意一些细节。
若有更好的方法,欢迎评论留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记 忆 iron

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值