poj2909 || poj2262

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int isPri(int a, int b)
{
    int i;
    for(i=2; i <= sqrt(a); i++)
    {
        if(a%i == 0)
            return 0;
    }
    for(i=2; i <= sqrt(b); i++)
    {
        if(b%i == 0)
            return 0;
    }
    return 1;
}
int main()
{
    int n,flag,i,cout;
    while(scanf("%d",&n) != EOF && n)
    {
        cout=0;
        for(i=2; i< n/2+1; i++)
        {
            flag=isPri(i,n-i);
            if(flag == 1)
                cout++;
        }
        printf("%d\n",cout);
    }
    return 0;
}

以后都用《埃拉托斯特尼筛法》打表

算法描述:小于2的不是素数,用一个数组a[10000],元素下标表示这个数,元素的值表示是否是素数,c++做法是,bool a[10000],将a[0]和a[1]赋成0,从2开始,2*2,2*3...

2*6...这些下标对应的元素值全改0,在此环境下再次寻找下一个素数,再一次,3*2,3*3,3*4...乘积整体小于10000

    int a[10000];
    a[0]=0;a[1]=0;
    for(i=2;i<10000;i++)
        a[i]=1;
    for(i=2;i<10000;i++)
    {
        if(a[i] == 1)
        {
            for(j=2;j<10000;j++)
            {
                a[i*j] == 0;
            }
        }
    }

for(int j=2;j<=n;++j){
        if(isPrimes[j]==true)
            for(int m=2;j*m<=n;++m)isPrimes[j*m] = false;  

参见:

http://blog.csdn.net/kingwolfofsky/article/details/7199758

时间: 2024-10-14 04:11:27

poj2909 || poj2262的相关文章

POJ2262 ZOJ1951 UVa543 Goldbach&#39;s Conjecture

问题链接:POJ2262 ZOJ1951 UVa543 Goldbach's Conjecture.基础训练级的题,用C语言编写程序. 这个问题是验证哥德巴赫猜想,对于输入的n,找出一对差值最大的奇素数. 使用穷举法来解决这个问题. 目前POJ使用的C语言编译器,似乎比较古老,在别处可以编译通过的代码,在它这里编译错误. AC的C语言程序如下: /* POJ2262 ZOJ1951 UVa543 Goldbach's Conjecture */ #include <stdio.h> #incl

poj2262 - 素数判断

筛选法: 先把N个自然数按次序排列起来. * 1不是质数,也不是合数,要划去. * 第二个数2是质数留下来,而把2后面所有能被2整除的数都划去. * 2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去. * 3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去. * 这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数. /* poj2262 - 素数判断 题目大意: 给定一个数n,把它分解成两个素数的和,在这些分解中,这两个素数

[POJ2262] Goldbach’s Conjecture

Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 48161   Accepted: 18300 Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the following conject

POJ2262问题描述

Goldbach's Conjecture Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the following conjecture: Every even number greater than 4 can be written as the sum of two odd prime numb

ACM算法总结及刷题参考

参考:http://bbs.byr.cn/#!article/ACM_ICPC/11777 OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965)    (2)贪心(poj1328,poj2109,poj2586)    (3)递归和分治法.     (4)递推.     (5)构造法.(po

POJ题目推荐(转载)

POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉.2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目.3.列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制.4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源.5.50个题目要求每个题目都要写总结,养成良好的习惯.6.这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

poj50题

POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉.2.标记为A and B的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目.3.列表中大约有70个题目.大家选做其中的50道,且每类题目有最低数量限制.4.这里不少题目在BUPT ACM FTP上面都有代码,请大家合理利用资源.5.50个题目要求每个题目都要写总结,养成良好的习惯.6.这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅

[转]POJ的刷题指南(加了超链接的)

网上看到的转过来一下,顺便把题目都加了个超链接,方便刷起~ POJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法:       (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.       (4)递推.       (5)构造法.(po