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
  • 相关阅读:
    响应式布局
    bootstrap--前端开发框架
    ADO.NET Entity Framework
    dns
    自动完成脚本
    一个Banner广告收缩效果
    对联广告2
    蓝色经典的对联广告代码
    Js弹性漂浮广告代码
    jquery悬停tab2
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3427170.html
Copyright © 2011-2022 走看看