lyc——2019.10.31

Posted orange-233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lyc——2019.10.31相关的知识,希望对你有一定的参考价值。

10:判决素数个数

总时间限制: 1000ms  内存限制: 65536kB
描述

输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。

输入
两个整数X和Y(1 <= X,Y <= 105)。
输出
输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
样例输入:1 100   样例输出:25
#include<cstdio>
#include<algorithm>
using namespace std;
bool f[100005];
int main()
{
    int x, y, ans=0;
    scanf("%d%d", &x, &y);
    f[1] = 1;
    if(x == 1) x=2;
    if(x > y) swap(x, y);
    for(int i=2; i<=y; i++)
    {
        if(f[i] == 0)
        {
            for(int j=2; j*i<=y; j++)
            {
                f[j*i] = 1;
            }
        }
    }
    for(int i=x; i<=y; i++)
    {
        if(f[i] == 0) ans++;
    }
    printf("%d", ans);
    return 0;
}

#没有考虑y可能比x大,还有时间复杂度。

 

1752:鸡兔同笼

总时间限制: 1000ms  内存限制:65536kB
描述

一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。

输入
一行,一个正整数a (a < 32768)。
输出
一行,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。
如果没有满足要求的答案,则输出两个0,中间用一个空格分开。
样例输入:20  样例输出:5 10
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
    int a, n, m, ma=32768;
    scanf("%d", &a);
    if(a%2 == 0)
    {
        for(int i=0; i<=a; i+=2)
        {
            n = i/2;
            if((a-i)%4 == 0)
            {
                m=(a-i)/4;
                ma = min(ma, n+m);
            }
        }
        printf("%d %d", ma, a/2);
    }
    else printf("0 0");
    return 0;
}

没考虑例外情况

以上是关于lyc——2019.10.31的主要内容,如果未能解决你的问题,请参考以下文章

数学问题

2019.10.28~2019.10.31考试总结

2019-10-31mathematica中Random参数的解析

离线赛 2019.10.31

2019.10.31 Zabbix环境初始化及添加监控主机

2019.10.31模拟赛