hdu 2098

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int ss(int n)
{
    int i,flag;
    flag=1;
    if(n==1)
    flag=0;
    for(i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        flag=0;
    }
    if(flag==1)
    return 1;
}
int main()
{
    int a,i,t;
    while(scanf("%d",&a)!=-1)
    {
        t=0;
        if(a==0)
        break;
        for(i=3;i<a/2;i++)
        if(ss(i)==1&&ss(a-i)==1)
        t++;
        printf("%d\n",t);
    }
    return 0;
}
时间: 2024-10-28 11:44:17

hdu 2098的相关文章

HDU 2098 分拆素数和(素数)

http://acm.hdu.edu.cn/showproblem.php?pid=2098 题意: 给你一个偶数,问你这个偶数有多少种方式能由两个不同的素数构成? 分析: 首先求出10000以内的所有素数. 如果这个偶数X能有两个不同的素数构成,那么一定一个小于(X/2-1). 只要从小到大枚举这个比较小的素数a,然后看看X-b是否是素数即可得到一种组合方式. 依次统计所有组合方式即可. AC代码: #include<cstdio> #include<algorithm> #in

hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)

传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 46434    Accepted Submission(s): 20210 Problem Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input

HDU 2098 分拆素数和

Problem Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input 输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束. Output 对应每个偶数,输出其拆成不同素数的个数,每个结果占一行. Sample Input 30 26 0 Sample Output 3 2 先打素数表,再一个一个判断,水 不知道为啥,编译错误 #include <cstdio> #include <iostream> #include &l

分拆素数和 HDU - 2098

把一个偶数拆成两个不同素数的和,有几种拆法呢? Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束.Output对应每个偶数,输出其拆成不同素数的个数,每个结果占一行.Sample Input 30 26 0 Sample Output 3 2 一道很水的题,自己做了一下感觉步骤有点麻烦但是上网搜了一下,发现我的居然比网上有些做法简单....拿出来晒一下,大神飘过~~~~ #include<iostream> #include<cstdio>

HDU 2098 分拆素数和 数论

分拆素数和 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input 输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束. Output 对应每个偶数,输出其拆成不同素数的个数,每个结果占一行. Sample Input 30 26 0 Sample Output 3 2 关键是做一下预处

C - 分拆素数和 (HDU - 2098)

- 题目大意 正如题目一样,就是将一个正偶数拆分成素数(记录拆分的素数个数就行,不用写出是那些素数). - 解题思路 去枚举每个数是否能被输入的数字整除,如果能就不行,反之记录即可. - 代码 #include<iostream> #include<cmath> using namespace std; int cf(int n) { int r, i; if (n <= 1) return 0; for (i = 2; i <= int(sqrt(int(n)));

分拆素数和 埃氏筛法

分拆素数和 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 2098 Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input 输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束. Output 对应每个偶数,输出其拆成不同素数的个数,每个结果占一行. Sample Input 30

杭电 HDU ACM 2098 分拆素数和

分拆素数和 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 24661    Accepted Submission(s): 10741 Problem Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input 输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束. Output 对

HDU分类

模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 12