整数分解 && 质因数分解
输入整数(0-30)分解成所有整数之和。每四行换行一次。
一种方法是通过深度优先枚举出解。通过递归的方式来实现。
#include <stdio.h>
#include <string.h>
#define MAXN 30
#define MAXString 64
int Terms[MAXN];
int N;
int Count; void Search(int Remainder,int Start,int nTerm)
{
int i;
if(Remainder == ){
Count++;
if(Count%!=)
printf(";");
printf("%d=%d",N,Terms[]);
for(i=;i<nTerm;i++)
printf("+%d",Terms[i]);
if(Count%==)
printf("\n");
}
else
{
for(i=Start;i<=Remainder;i++){
Terms[nTerm]=i;
Search(Remainder-i,i,nTerm+); }
}
}
void Test1()
{
scanf("%d",&N);
Count=;
Search(N,,); if(Count%!=)
printf("\n");
}
void Search1(int Remainder, int Start,char *STerms)
{
int i;
char Tmps[MAXString];
strcpy(Tmps,STerms);
for(i=Start;i<=Remainder;i++)
{
if(Remainder-i>=i)
{
sprintf(Tmps+strlen(STerms),"%d+",i);
Search1(Remainder-i,i,Tmps); }else if(Remainder-i==)
{
sprintf(Tmps+strlen(STerms),"%d ",i);
Count++;
if(Count%!=)
printf(";");
printf("%s",Tmps);
if(Count%==)
printf("\n"); } }
}
void Test2()
{
char STerms[MAXString]="";
int N;
Count=;
scanf("%d",&N);
Search1(N,,STerms);
if(Count%!=)
printf("\n"); }
第二种方法是试探下一次是否达到边界,避免了第一种方法的多次无效递归。
质因数分解,输入大整数long int并分解其为素数的乘积
//整数分解成素因子
void Decomposed(long int data){ int i;
int si=0;
int temp=data;
for(i=2;i<=temp;i++){
if(temp!=i)
{
while(true){
if(temp%i==0 && temp/i!=1){
printf("%d*",i);
temp/=i;
//printf("temp=%d,i=%d\n",temp,i);
}else if(temp%i==0 && temp/i==1){
printf("%d",i);
temp/=i;
//printf("temp=%d,i=%d\n",temp,i);
}
else
break;
}
}else{
printf("%d\n",i);
si=1;
} }
if(si==0)
printf("\n"); } void TestDecomposed(){
long int x=1000234;
printf("%ld=",x);
Decomposed(x);
}
整数分解 && 质因数分解的更多相关文章
- Project Euler 29 Distinct powers( 大整数质因数分解做法 + 普通做法 )
题意: 考虑所有满足2 ≤ a ≤ 5和2 ≤ b ≤ 5的整数组合生成的幂ab: 22=4, 23=8, 24=16, 25=3232=9, 33=27, 34=81, 35=24342=16, 4 ...
- C语言 · 分解质因数
问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 输入两个整数a,b. 输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小 ...
- Java实现 蓝桥杯VIP 基础练习 分解质因数
题目介绍 问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 输入两个整数a,b. 输出格式 每行输出一个数的分解,形如k=a1a2a3-(a1<=a2<=a3-,k也是从小到 ...
- python基础练习题(题目 将一个整数分解质因数。例如:输入90,打印出90=2*3*3*5)
day9 --------------------------------------------------------------- 实例014:分解质因数 题目 将一个整数分解质因数.例如:输入 ...
- algorithm@ 大素数判定和大整数质因数分解
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #in ...
- 大整数分解质因数(Pollard rho算法)
#include <iostream> #include <cstring> #include <cstdlib> #include <stdio.h> ...
- 程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)
1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...
- 【BZOJ-4514】数字配对 最大费用最大流 + 质因数分解 + 二分图 + 贪心 + 线性筛
4514: [Sdoi2016]数字配对 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 726 Solved: 309[Submit][Status ...
- 【基础数学】质数,约数,分解质因数,GCD,LCM
1.质数: 质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数. 2.约数: 如 ...
随机推荐
- 关于cmd下使用taskkill无法终止进程名包含空格的进程的解决方案
在我们使用taskkill命令终止进程时,有时会遇到无法终止含空格的进程的问题.只要在进程名外部加上双引号即可解决此问题. 如图所示: 附上taskkill命令的语法及相关说明: TASKKILL [ ...
- C++类功能扩展预留五招
第一招虚函数 通过派生类来进行功能扩展是基本的面向对象的方式,这种方式大如下: class base { public: virtual ~base(){} virtual void fun() { ...
- hibernate的hql查询
1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...
- SpringMVC学习--功能完善
简介 在基本的项目中,无非就是基本的增删改查,前面我们已经实现了一个简单的查询功能,现在来实现增删改功能,来了解实际开发中的运用,以修改功能为例,因为修改功能基本覆盖了增加和删除的运用. 前面我们实现 ...
- 链栈的C语言实现
/* 功能:栈的链表实现 Author:lxm Date: 20160511 */ #include <stdio.h> #include <stdlib.h> #define ...
- Mahout安装与配置
一.安装mahout 1.下载mahout(mahout-distribution-0.9.tar.gz) http://pan.baidu.com/s/1kUtOMQb 2.解压至指定目录 我平时都 ...
- 折叠ListView
转自 http://blog.csdn.net/hnyzwtf/article/details/50487228 1 activity_main.xml <?xml version=" ...
- 查看本机ip
视窗+R 然后输入cmd, enter 后再黑色窗口里输入 ipconfig
- [转]JVM调优总结:一些概念
JVM调优总结:一些概念 原文出处: pengjiaheng 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变 ...
- Yii2 Redis的使用
Yii2 redis扩展 下载 将下载的解压,改名为redis,放在vendor\yiisoft\yii2\目录下 包含Connection.php,ActiveRecord.php等文件 修改 ...