输入整数(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);
}

  

整数分解 && 质因数分解的更多相关文章

  1. 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 ...

  2. C语言 · 分解质因数

    问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 输入两个整数a,b. 输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小 ...

  3. Java实现 蓝桥杯VIP 基础练习 分解质因数

    题目介绍 问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 输入两个整数a,b. 输出格式 每行输出一个数的分解,形如k=a1a2a3-(a1<=a2<=a3-,k也是从小到 ...

  4. python基础练习题(题目 将一个整数分解质因数。例如:输入90,打印出90=2*3*3*5)

    day9 --------------------------------------------------------------- 实例014:分解质因数 题目 将一个整数分解质因数.例如:输入 ...

  5. algorithm@ 大素数判定和大整数质因数分解

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #in ...

  6. 大整数分解质因数(Pollard rho算法)

    #include <iostream> #include <cstring> #include <cstdlib> #include <stdio.h> ...

  7. 程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)

    1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...

  8. 【BZOJ-4514】数字配对 最大费用最大流 + 质因数分解 + 二分图 + 贪心 + 线性筛

    4514: [Sdoi2016]数字配对 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 726  Solved: 309[Submit][Status ...

  9. 【基础数学】质数,约数,分解质因数,GCD,LCM

    1.质数: 质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数. 2.约数: 如 ...

随机推荐

  1. [Ajax系列]Ajax介绍

    Ajax简介: Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. What ? AJAX=异步JavaScript和XML AJAX是一种用于创建快读动态网页的技术 通过在后台语 ...

  2. MySQL删除/更新数据时报1175错误

    今天删除MySQL数据库中的一条记录的时候,一直不能删除,提示错误信息如下: Error Code: 1175. You are using safe update mode and you trie ...

  3. git diff命令

    1. 比较两次提交的差异 2. 两个分支之间的比较 3. 暂存区和版本库的比较

  4. MyBatis_ibatis和mybatis的区别【转】

    1. ibatis3.*版本以后正式改名为mybaits,它也从apache转到了google code下:也就是说ibatis2.*,mybatis3.*. 2. 映射文件的不同 ibatis的配置 ...

  5. MySQL定时器开启、调用实现代码

    创建测试表  CREATE TABLE t ( v ) NOT NULL ) ENGINE INNODB DEFAULT CHARSET=utf8; 创建定时器 调用的存储过程  DELIMITER ...

  6. spring-ant-处理zip

    因为java类型自带的不支持中文路径,不过两者使用的方式是一样的,只是apache压缩工具多了设置编码方式的接口,其他基本上是一样的.另外,如果使用org.apache.tools.zip.ZipOu ...

  7. css li 不换行(布局,内容)

    参考这里 ------ 不换行的策略: 不换行原理: ul 和 li 默认都是 display:block; 的标签, 可以通过2种方式实现 li 的 不换行显示: * 将 li 设为 display ...

  8. python面试2

    Python语言特性 1 Python的函数参数传递 看两个例子:     1 2 3 4 5 a = 1 def fun(a):     a = 2 fun(a) print a  # 1 1 2 ...

  9. shell中substr总结

    (1)awk中函数substr substr(源字符串,开始索引,长度)   开始索引以0开始 示例: awk '{$a=substr($0,0,2);print $a;}' filename 假设文 ...

  10. 【unity shaders】:Unity中的Shader及其基本框架

    shader和Material的基本关系 Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出.绘图单元可以依据这个输出来将图 ...