前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >poj2793 素数和

poj2793 素数和

作者头像
瑾诺学长
发布2018-09-21 16:29:18
2510
发布2018-09-21 16:29:18
举报
文章被收录于专栏:专注研发专注研发

题目链接:http://poj.org/problem?id=2739

代码语言:javascript
复制
#include<iostream>
using namespace std;
 int count=0;
 int prim[1234]={2,3};
 void primer()
 {                      //列出所有素数
     int f,i,j,q=2;
     for(i=5;i<10000;i+=2)
      {

      for(j=0,f=1;prim[j]*prim[j]<=i;j++)   
         if(i%prim[j]==0)f=0;       
     if(f)
     {
         prim[q++]=i;       //小技巧
     }
      }

 }
 void minu(int n,int i)
 {
         if(i<0)return ;
     if(n==prim[i])
     {
         count++;
     }
     else if(n>prim[i])
        minu(n-prim[i],i-1);    
        else return ;
        return;

 }



 int main()
 {    primer();
     int n,k,i;
     while(cin>>n)
     {if(n==0)break;
         for( i=0;i<1230;i++)
         if(n==prim[i]){count++;k=i-1;break;}
         else if(n<prim[i]){k=i-1;break;}    //找到k(和输入的数最接近的素数的位置)
         for(  i=k;i>=0;i--)
            minu(n,i);        //倒着减找到,和相等的组合
         cout<<count<<endl;
         count=0;
     }
     return 0;
 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档