质数和分解问题

【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 ;
}
 
关于质数的算法集合 问题1: 如何判断一个数是否为质数? 从解决原理来看,大致有两种。一种从质数定义出发:除了1和自身无其他约数,那么解决思路就简单直接--用这个数除以除1外所有比它小的数,若能整除,则不是质数。 但是实际操作中如果写用n循环去除2到n-1的所有数,然后看是否都不能被整除,未免太慢了。大体改进的方法不外乎设法减少判断的次数。可以参考这篇文章:https://blog.csdn.net/huang... 阅读详情

相关推荐

从零开始 使用OMNET++结合VEINS,INET和SUMO的联合仿真

搭建仿真的环境,导入VEINS和INET开源库,使用INET库中提供的网络协议和功能模型来模拟通信协议和网络功能,使用SUMO创建道路网络和车辆轨迹,并导出到OMNeT++中 在OMNeT++中使用VEINS通过socket和SUMO连接,借助VEINS实现的TRACI接口来设置车辆相关的行为和场景,最后在OMNET++中结合VEINS,SUMO和INET运行联合仿真实验,并分析车辆在遇到紧急情况下的通信状况和具体行为

mjmmm的博客 1万+

【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

双目视觉实战:用Bouguet算法实现极线校正的完整代码解析

本文详细解析了Bouguet算法在双目视觉极线校正中的完整实现流程与性能调优技巧。通过旋转平分策略和基线对齐,Bouguet方法显著降低图像畸变并提升匹配精度,相比传统Hartley校正法平均重投影误差降低53%。文章涵盖从相机标定到OpenCV实战的全过程,并分享工业级调参策略,帮助开发者实现高精度立体视觉系统。

f9g0h的博客 264

质数和分解(prime)

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

A_Comme_Amour的博客 2928

STM32+W5500实战:5分钟搞定FreeModbus TCP移植(附完整代码)

本文详细介绍了如何在STM32微控制器上,结合W5500以太网芯片,快速完成FreeModbus TCP协议栈的移植,构建稳定可靠的工业级Modbus TCP服务器。内容涵盖硬件连接、软件架构、驱动适配、核心移植代码实现及调试优化技巧,旨在提供可直接应用于实际项目的完整解决方案。

life6的博客 878

EMI硬件抑制八项工程对策:从回路面积到谐振规避

电磁干扰(EMI)是电子系统可靠性与EMC合规性的核心挑战,其本质源于高频电流回路产生的辐射与耦合效应。理解回路面积、共模/差模噪声、阻抗匹配等基础原理,是实施有效抑制的前提。技术价值体现在降低辐射发射(RE)、传导发射(CE)超标风险,提升产品一次通过率与长期稳定性。典型应用场景包括开关电源设计、高速数字接口布局、工业嵌入式设备及医疗电子等对EMC要求严苛的领域。本文聚焦可落地的硬件级对策,涵盖回路面积控制、屏蔽策略、变压器漏磁管理、双线传输与阻抗匹配等关键实践,深度融合电流回路物理模型与PCB工程实现。

weixin_35019679的博客 84

AHOI2001 HLOJ419 质数和分解

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

蒟蒻柴犬首相的博客 584

网卡Inter (R) Wi-Fi 6 AX201突然故障 错误代码10,无法找到无线网络,蓝牙也无效了

问题描述 说来也是坑,简直就莫名其妙。早上在工位上,电脑一切正常(一直用的是无线网络),然后周五准备开周会了,所以拔掉电脑外接设备(电源线,鼠标,外接显示器)拿起电脑到会议室。到了会议室之后,无线网断开了(但一般是不会断开的,都在公司范围内),所以选择重连,但发现已经没有无线网络列表了。 电脑机型:联想YOGA 14s 2021 初步尝试 1、关闭开始飞行模式 - 无果 2、重启并重启 (因为前两天已经提醒过有windows更新,趁这个机会就更新并重启了)- 无果 3、下载鲁大师、驱动精灵、联想驱动管

疯狂的蜗牛 5万+

动态规划(dp)总结

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

Spidy_harker的博客 1849

【科研绘图】【数据拟合曲线】:附Origin详细画图流程

拟合曲线图

weixin_50236590的博客 4万+

34 python 时间和日期

介绍python里时间和日期的常用方法,以及案例,还有注意事项。

水滴爬呀爬 347

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

NX二次开发(Python)-UIStyler-选择体和按钮操作

用UG NX的UIStyler块界面编辑器,生成带有“选择体”和“按钮”操作的一个界面,如下图所示:

GimiGimmy 2311

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

质数又称素数。一个大于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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

0k-ok 553

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[AHOI2001]质数和分解

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

weixin_30587025的博客 89

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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
上一篇: 猴子分桃问题
下一篇: 方阵填数问题(模拟法)
oopos
博客等级 码龄19年 21粉丝 50原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值