质数和分解问题

【AHOI】质数和分解 (洛谷搬家系列,不想COPY题目,自己查,谢谢!) 这题要用到DP完全背包求方案数,但我想强调的是质数表O(∩_∩)O~ 这个数据量已经算很小了,如果数据量大的话,这样一遍一遍求质数 也许应该可能 一定会 TLE ( ⊙ o ⊙ )! 这是可以用一个伟大的理论: 筛法求素数 具体做法是:给出要筛数值的范围n,找出n以内的素数p1,p2,p3,…,pk。先用2去筛,即把2留下,把2的倍数剔除掉;再... 阅读详情
/*
质数和分解(normal)

Time Limit:1000MS  Memory Limit:65536K
Total Submit:178 Accepted:66 

Description 

任何大于 1 的自然数 n,都可以写成若干个大于等于 2 ,且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式: 
9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7 。 
这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。 
试编程求解自然数 n 可以写成多少种本质不同的质数和表达式。 


Input 

(prime.in)文件中的每一行存放一个自然数 n , 2≤n≤200。

Output 

(prime.out)依次输出每一个自然数 n 的本质不同的质数和表达式的数目。

Sample Input 


2

Sample Output 


1

*/
/*
说明: 这个程序效率不高,哪位有更高的PM我一下,谢谢!!!发至:oopos@126.com
*/
#include 
<stdio.h>
#include 
<math.h>
#include 
<string.h>

#define MAX 201 

int prime[MAX]={0},lp=0,total=0;

void makeprime(void)
{
     
int i,j ;
     prime[
++lp] = 2 ;
     
for(i=3 ; i<= MAX ; i++)
     {
             
for(j=2 ; j*j <= i ; j++)
             
if (i % j == 0)
             
break ;
             
if(j*j > i)
             prime[
++lp] = i ;
             
     }
}

int is_prime(int x)
{
    
int y;
    
for(y=1 ; y<= lp ; y++)
    
if(x == prime[y])
    
return 1 ;
    
return 0 ;
}

int is_ok(int *sum,int num)
{
    
int i ;
    
for(i=1 ; i<= num ; i++)
    
if( !is_prime(sum[i]))
    
return 0 ;
    
return 1 ;
}

        
void trytodo (int *sum,int min,int max,int num)
{
     
int p,q ;
     
if(is_ok(sum,num)) /*检查是否全为质数*/
     {
       total 
++ ;
       
/*for(q=1 ; q<= num ; q++)
       printf("%d ",sum[q]);
       printf(" ");
*/
     }
     
     
for(p=min ; p<= max/2 ; p++)
     
if(is_prime(p))
     {
           sum[num
+1] = max - p ;
           sum[num] 
= p ;
           trytodo(sum,sum[num],sum[num
+1],num+1);
     }
}


int main(void)
{
    
int h,k,n,sum[MAX]={0};
    scanf(
"%d",&n);
    
    makeprime() ;
    
if(is_prime(n))
    total 
++ ;
    
    
for(h=2; h<= n/2 ; h++)
    {
          
if (is_prime(h)) /*至少要分到一个质数,不然会重复,这也叫剪枝吧*/
          {
               sum[
1] = h ;
               sum[
2] = n-h;             
               trytodo(sum,sum[
1],sum[2],2) ;
          }
    }
    
    printf(
"total = %d ",total);
    
    
/*for(k=1 ; k<= lp ; k++)*//* 产生质数
    printf("%d ",prime[k]);
    printf(" lp=%d ",lp);
*/
    system(
"pause");
    
return 0 ;
}
 
从零开始:Vivado中自定义串口通信IP核的完整实现 本文详细介绍了在Vivado中从零开始实现自定义串口通信IP核的完整流程,包括Verilog核心代码编写、仿真验证、IP核封装与参数化配置技巧。通过AXI-Lite总线实现动态配置,提升FPGA开发效率,适用于各种嵌入式系统通信需求。 阅读详情

相关推荐

最新Docker GPU支持全解析:为什么nvidia-smi能用但PyTorch找不到CUDA?

本文深入解析了Docker容器中nvidia-smi命令可用但PyTorch无法调用CUDA的根本原因。关键在于默认配置仅暴露了GPU的utility管理能力,而CUDA计算所需的compute能力未被激活。通过正确设置NVIDIA_DRIVER_CAPABILITIES环境变量为compute,utility,并配合--gpus参数,即可解决此问题,确保AI训练等任务顺利进行。

convnet3designer的博客 238

【9911】质数和分解

Time Limit: 3 second Memory Limit: 2 MB 【问题描述】 任何大于1的自然数n,都可以写成若干个大于等于2且小于等于n的质数之和的表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数的的形式。例如,9的质数和表达式就有四种本质不同的形式:9=2+5+2=2+3+2+2=3+3+3=2+7。 这里所谓两个本质相同的表达式是指可以通...

321

博通PEX89000 PCIe 5.0交换芯片:如何为AI集群构建高效GPU互联架构

本文深入解析了博通PEX89000 PCIe 5.0交换芯片如何为AI集群构建高效的GPU互联架构。该芯片通过提供高带宽、低延迟的PCIe 5.0交换能力,打破传统GPU通信的带宽瓶颈,并支持多主机共享、资源池化及软件定义拓扑,从而显著提升大规模AI训练与推理任务的效率与资源利用率。

weixin_29214559的博客 411

质数和分解(prime)

【问题描述】 任何大于1的自然数N,都可以写成若干个大于等于2且小于等于N的质数之和表达式(包 括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9的质数和 表达式就有四种本质不同的形式:9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7。 这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各 个数的位置而直接得到另一个表达式。

A_Comme_Amour的博客 2928

QT编程系列1--QT学习前需知

本周学习了一些QT编程方面的知识,学写了几个程序,这里把记录下来。一方面对前面学习的知识做一个总结,便于以后复习、再学习和应用;另一方面也和大家做个交流,有不足的地方请各位看官多指点。   首先是做一些学习之前的交代:一,学习QT需要哪些基础;二,学习QT有哪些用途,QT较其他的开发工具有哪些特点;三,学习QT的思路。

霜月孤鸟&RTEMS&TinyOS 1115

MPU6050 加速度计和陀螺仪传感器与 Arduino 的接口

虽然该模型并不能准确代表现实世界中加速度计传感器的构建方式,但它通常有助于理解为什么加速度计的输出信号通常以 ±g 为单位指定,或者为什么加速度计在静止时在 z 轴上的读数为 1g,或者在不同方向上您可以期望得到什么样的加速度计读数。该模块的核心是低功耗、低成本的 6 轴运动跟踪芯片 MPU6050,它将 3 轴陀螺仪、3 轴加速度计和数字运动处理器 (DMP) 集成到一个 4mm x 4mm 的微型芯片中。小时候,科学博览会上的陀螺仪总是让我们感到惊讶,因为它们以奇怪的方式移动,甚至似乎违背了重力。

sxstj的博客 9932

AHOI2001 HLOJ419 质数和分解

题面 题目描述   任何大于 1 的自然数n都可以写成若干个大于等于2且小于等于n的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。 例如,9 的质数和表达式就有四种本质不同的形式: 9=2+5+2=2+3+2+2=3+3+3=2+7。   这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中 参加和运算的各个数的位置而直接得到另一个表达式。...

蒟蒻柴犬首相的博客 584

ABAP内表数据导出Excel:OLE、ALV与GUI_DOWNLOAD方案全解析

在企业级应用开发中,数据导出是连接后台系统与前端业务分析的关键桥梁。其核心原理是将结构化数据转换为通用文件格式,以实现跨平台的数据交换与可视化。从技术价值看,一个健壮的导出功能能显著提升数据处理效率,减少人工干预,是衡量系统实用性的重要指标。常见的应用场景包括报表生成、数据交接和临时数据提取。本文聚焦于SAP ABAP开发领域,深入探讨如何将内表数据高效、稳定地导出至Excel,涵盖了OLE自动化、ALV标准导出以及基于CL_GUI_FRONTEND_SERVICES与GUI_DOWNLOAD的通用方案,并

weixin_32715349的博客 320

动态规划(dp)总结

问题 B: 【动态规划】圣诞树 题目: 圣诞特别礼物挂在一棵圣诞树上,这棵树有n层,每层有一件礼物,每件礼物都有一个价值,有的礼物还有一些连接线,与下层的礼物相连。领取礼物的规则如下:任选一件礼物,它的下面如果有连接线,则可以继续取它连接的礼物,依此类推直至取到没有连接线的礼物才结束。你如果是第一个去取,怎样取才能获得最大的价值呢?请你编一程序解决这一问题。 输入 第1行只有一个数据n(n≤100...

Spidy_harker的博客 1849

抖音用户评论和ID的采集方法

随着5G时代的普及,各大运营商的套餐纷纷推出,使得流量成本进一步降低。同时5G线路高宽带、低延迟的技术特性和手机普及,让视频用户访问量快速增加。 由于大量的视频工具和拍摄APP的提供,让短视频的拍摄、制作包括发行都变得更加简单便捷,越来越多的普通人可以投入视频创作,创造了更丰富的互联网内容,视频作者从视频推广中能获取粉丝和推广收益。 目前抖音就是目前最重要的短视频平台之一,要及时获取上面的用户评论和ID,需要结合爬虫代理实现采集方案,下面的代码就能快速采集相关信息: package htmlunit; i

ssbt_2020的博客 6787

Aip1640、TM1640驱动程序

本文介绍了AIP1640/TM1640驱动芯片的编程实现,主要包括硬件接口定义和通信协议函数。通过宏定义配置时钟(CLK)和数据线(DIO)的GPIO控制,实现了I2C协议的启动、停止、字节发送等基本操作。核心函数AIP1640_Disp_Drive()完成显示驱动流程:先发送0x40命令设置地址自增模式,再发送0xC0起始地址和16字节显示数据,最后设置亮度参数。文中还包含5微秒延时函数、显示数据缓冲区定义,以及LED和数码管(SMG)的位映射注释说明。该代码适用于控制LED数码管显示,支持亮度调节功能。

zqx的博客 1400

01背包 质数和分解

吉林大学软件大二学生 东北师范大学附属中学OJ jinxi20111 2019.05.23 题目描述 任何大于 1 的自然数 N,都可以写成若干个大于等于2且小于等于 N 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式:9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7 。 这里所谓两个本质相同的...

MythCoffee的博客 1321

从零开始学习CANoe(十六)—— Graphics

Graphics是一种以时间轴为横坐标,符号值为纵坐标的显示分析方法,相对于Trace来说,更直观的观察出信号的跳变

蚂蚁小兵 9189

判断 素数(质数) 和 质因式分解 问题

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 //素数判断 int isPrime(u32 n) { for (u32 i = 2; i < n; i++) { //可以被别的数整除,不是素数 if (n % i == 0) return 0; } return 1; } //质因数分解 int getPrimeFactor(u32 n) { //可以不返.

保持每天的清醒 845

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

问题 T: 【动态规划】质数和分解

人群淹没,你我不及诉说。一声雁过,往事如昨。只望离别不多,再赏盛世烟火。 题目描述 任何大于1的自然数n,都可以写成若干个大于等于2且小于等于n的质数之和的形式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9的质数和表达式就有四种本质不同的形式:9=2+5+2=2+3+2+2=3+3+3=2+7。 这里所谓两个本质相同的表达式,是指可以通过交换其中一个表达式中参加...

0k-ok 553

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

[AHOI2001]质数和分解

[AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如,9 的质数和表达式就有四种本质不同的形式: 9 = 2 + 5 + 2 = 2 + 3 + 2 + 2 = 3 + 3 + 3 = 2 + 7 。 这里所谓两个本质相同的表达式是指可...

weixin_30587025的博客 90

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题、P5736 【深基7.例2】质数筛(试除法)、P2043 质因子分解(唯一分解定理)

P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码思路 函数定义: 函数用于计算两个数的最大公约数,使用了递归的欧几里得算法。主函数 :P5736 【深基7.例2】质数筛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码思路 函数定义:主函数 :P2043 质因子分解 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码思路 函数定义:主函数 :

u014114223的博客 778

洛谷 P2563 [AHOI2001]质数和分解

                洛谷 P2563 [AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如,9 的质数和表达式就有四种本质不同的形式: 9 = 2 + 5 + 2 = 2 + 3 + 2 + 2 = 3 + 3 +...

bai123456888888的博客 219

洛谷 P2563 [AHOI2001]质数和分解

P2563 [AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如,9 的质数和表达式就有四种本质不同的形式: 9 = 2 + 5 + 2 = 2 + 3 + 2 + 2 = 3 + 3 + 3 =...

HJ921004的博客 192

P2563[AHOI2001] 质数和分解 动态规划-完全背包

P2563[AHOI2001] 质数和分解 动态规划

m0_46183615的博客 885

过河卒&采药&精卫填海&质数和分解

过河卒&采药&装箱

暴躁大企鹅的博客 535

整数的因式分解,分解为质数的积

//分析: //质数指: 2 3 5 7 11 13 …(不能再分解的数) //一个整数总是从最小的质数2开始尝试分解,就可以去掉所有的偶数,再递增到3去掉所有能被3整除的数,以此类推。 每除一次该整数就变小,直到不能分解。 #include<stdio.h> int main() { int n,i; printf("Plz input int:"); scanf("%d",&n); printf("%d=",n).

7TribeZ的博客 726

质因数分解、约数个数、约数和

背景: 暴力求 n 的约数个数、约数和的复杂度为 ,往往不能符合题目时限要求。但这个通过质因数分解来优化时间。 质因数分解: 性质:一个数 n ,最多只存在一个质因子。 因此,我们只需要预处理出以内的质数(1e5以内质数大概4000+个)。遍历这些质数,若n%p==0,那么n/p,直到n%p!=0。最后如果 n 还大于 1 ,那么这个剩下的 n 一定也是质数。 设,...

残阳止水 2208
上一篇: 方阵填数问题(模拟法)
下一篇: 猴子分桃问题
wx红杉树
博客等级 码龄21年 383粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值