zoukankan      html  css  js  c++  java
  • 喵哈哈村的狼人杀大战(4)

    喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!

    徐元帅同学今天他抽到的是女巫的身份,按照他的一贯玩法,他喜欢一开始就把自己毒死。

    于是他早早的就出去了。

    他很无聊,于是出了一道题给自己玩。

    他从怀里面掏出了一个数字n。

    他想知道有多少组三元组(a,b,c),满足a<=b<=c,且a,b,c都是素数,而且a+b+c=n。

    本题包含若干组测试数据。
    每组测试数据只含有一个整数n。
    1<=n<=10000

    输出三元组的数量。


    3
    9
    0
    2
    题解

    #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 10000; int np, pri[maxn+5], vis[maxn+5]; void prime_table(int n) { np = 0; memset(vis, 0, sizeof(vis)); vis[0] = vis[1] = 1; for (int i = 2; i <= n; i++) { if (vis[i]) continue; pri[np++] = i; for (int j = i * i; j <= n; j += i) vis[j] = 1; } } int main () { int n; prime_table(maxn); while (scanf("%d", &n) == 1) { int ans = 0; for (int i = 0; i < np; i++) { for (int j = i; j < np; j++) { if (pri[i] + pri[j] >= n) break; int t = n - pri[i] - pri[j]; if (vis[t] == 0 && t >= pri[j]) ans++; } } printf("%d ", ans); } return 0; }
  • 相关阅读:
    【HDOJ】2102 A计划
    this关键字
    static(静态、修饰符)
    手势抽取过程&代码复用
    Android:padding和android:layout_margin的区别
    平移动画
    读取系统联系人
    获取sim卡序列号
    图片选择器
    md5加密过程
  • 原文地址:https://www.cnblogs.com/gfdybz/p/6522760.html
Copyright © 2011-2022 走看看