• UVA 10200 Prime Time (打表)


    http://acm.hust.edu.cn/vjudge/contest/127946#problem/D

    分析:n可根据公式 f(n) = n*n+n+41得到f(n),f(n)可能是素数也可能不是素数,求a到b之间的数可根据公式得到素数的百分比

    #include<stdio.h>
    #include<math.h>
    #include<algorithm>
    #include<string.h>
    #include<stdlib.h>
    
    using namespace std;
    
    const int N = 10010;
    typedef long long ll;
    
    int num[N];//num[i]表0到i这个数之间的数可根据公式得到素数的数有多少个
    
    int judge(int n)
    {
        int k = sqrt(n);
        for(int i = 2 ; i <= k ; i++)
        {
            if(n % i == 0)
                return 0;
        }
        return 1;
    }
    
    int main()
    {
        int a, b;
        memset(num, 0, sizeof(num));
        num[0] += judge(41);
        for(int i = 1 ; i < N ; i++)
            num[i] = num[i - 1] + judge(i * i + i + 41);
        while(~scanf("%d%d", &a, &b))
        {
            int sum1, sum;
            sum1 = num[b] - num[a] + judge(a * a + a + 41);
            sum = b - a + 1;
            printf("%.2f
    ", (1.0 * sum1 / sum) * 100 + 1e-8);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    倒计时功能的实现
    getElementsByClassName
    模拟滚动条
    display:table-cell
    gulp相关知识(2)
    gulp相关知识(1)
    移动端的网页试做
    关于移动端的布局
    伪类before和after
    简单时钟——css3
  • 原文地址:https://www.cnblogs.com/daydayupacm/p/5768809.html
Copyright © 2020-2023  润新知