zoukankan      html  css  js  c++  java
  • POJ2739Sum of Consecutive Prime Numbers

    http://poj.org/problem?id=2739

    题意 :一个正整数能够表示为一个或多个连续素数和,给你一个正整数,让你求,有多少个这样的表示。例如:整数53有两种表示方法,5+7+11+13+17和53,41有三种表示方法,2+3+5+7+11+13,11+13+17还有41,而整数20没有这样的表示方法。

    思路 :因为取值到10000,所以先素数打表,然后枚举所有的表示方法中连续的素数里最小的那个即可。

    #include <iostream>
    
    using namespace std;
    
    const int maxp = 2000,n = 10000 ;
    int prime[maxp],total = 0 ;
    bool isprime(int k)
    {
        for(int i = 0 ; i < total ; i++)
            if(k % prime[i] == 0)
                return false ;
        return true ;
    }
    int main()
    {
        for(int i = 2 ; i <= n ; i++)
        {
            if(isprime(i))
                prime[total++] = i ;
        }
        prime[total] = n+1 ;
        int m ;
        while(cin>>m &&m)
        {
    
            int ans = 0 ;//次数初始化为0
            for(int i = 0 ; m >= prime[i] ; i++)
            {
                int cnt = 0 ;//求连续素数的和
                for(int j = i ; j < total&&cnt < m ; j++)
                    cnt += prime[j] ;
                if(cnt == m)
                    ++ans ;
            }
            cout<<ans<<endl ;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    jquery 父、子页面之间页面元素的获取,方法的调用
    读excle
    dataTable写入数据库(大数据写入)
    经典类和新式类的区别
    重写父类方法
    封装redis
    继承
    私有方法
    优化MyDb

  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3427170.html
Copyright © 2011-2022 走看看