zoukankan      html  css  js  c++  java
  • UVA 1434

    UVA 1434 - YAPTCHA

    题目链接

    题意:求出题目中那个公式的答案

    思路:
    3k+7非素数的时候,那么(3k+6)!(由于必定能找到两个因子相乘)
    所以原式为0

    3k+7为素数的时候,依据威尔逊定理,((3k+6)!+1)%(3k+7)==0,因此原式能够转化为[x - (x - 1)] = 1

    因此问题转化为仅仅要推断3 * k + 7是不是素数,那么就非常好办了,预处理出素数表,再预处理出答案就可以

    代码:

    #include <stdio.h>
    #include <string.h>
    
    const long long N = 1000005;
    
    bool ispri[N * 3];
    int ans[N], t, n;
    
    int main() {
        for (long long i = 2; i < N * 3; i++) {
    	if (ispri[i]) continue;
    	for (long long j = i * i; j < N * 3; j += i)
    	    ispri[j] = true;
        }
        for (int i = 2; i < N; i++)
    	ans[i] = ans[i - 1] + (!ispri[3 * i + 7]);
        scanf("%d", &t);
        while (t--) {
    	scanf("%d", &n);
    	printf("%d
    ", ans[n]);
        }
        return 0;
    }


  • 相关阅读:
    go语言与区块链
    git+jenkins
    cicd
    devops
    Go 并发
    Thinkphp5-未定义数据库类型
    用golang写爬虫
    kubernetes-通过VMware搭建k8s集群遇到的问题
    亚马逊全球开店2019
    kafka命令大全
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5155675.html
Copyright © 2011-2022 走看看