2164 - XDZ 的成长

又是一道关于 XDZ 同学的题目,在前面几题中我们都知道 XDZ 非常想赢得比赛,先是和 YY 比赛AC 题目,后来是裁判的评分,最后是划拳,如果我没记错好像他俩划了几次拳依旧没有分出胜负...(这俩家伙还真是墨迹)。
两人挣得面红耳赤,还要继续比下去,裁判 LQ 告诉他们“你们来我们 Acm 的目的是学习编程,而不是拿一点皮毛出来和同学炫耀!况且我们的正规比赛是3人一队的组队赛,不团结怎么能取得好成绩!”

<span style="font-family:'Courier New';font-size:14px;">他们听后终于明白了自己的错误,于是两人成为了好朋友,合力做出了一道两人都不会做的题目,明白了团队的重要性!</span>

<span style="font-family:'Courier New';font-size:14px;">LQ 感叹道:”你们成长了“</span>

<span style="font-family:'Courier New';font-size:14px;">一起看一看这道让 XDZ 和 YY 成长的题目吧。&nbsp;</span>

题目输入

输入数据有多组,每组输入一个整数 n 和 m,如果 n == 0 并且 m == 0 结束输入(注意 n 不一定小于m)

题目输出

输出 n 到 m 之间的素数有多少个。每组输出占一行

输入/输出样例

题目输入

1 10
20 3

题目输出

4
7

C语言解答

#include <stdio.h>

int is_prime( int t ) {
    if( t == 0 || t == 1 ) return 0 ; //1 是特殊情况

    for( int i = 2 ; i * i <= t ; i ++ ) {
        if( t % i == 0 ) return 0 ;
    }
    return 1 ;
}

int main() {

    int a, b ;
    while( scanf("%d%d", &a, &b) != EOF ) {
        if( a == 0 && b == 0 ) break ;
        if( a > b ) {
            int t = a ;
            a = b ;
            b = t ;
        }

        int count = 0 ;
        for( int i = a ; i <= b ; i ++ ) {
            if( is_prime(i) == 1 ) {
                count ++ ;
            }
        }
        printf("%d\n", count) ;

    }

    return 0 ;
}

C++解答

#include<iostream>
#include<cstdio>
using namespace std;
int is_prime(int n)
{
    int i ;
    if(n < 2) return 0;
    if(n == 2)return 1;
    for(i = 2; i <= n/2; i++)
    if(n % i == 0) return 0;
    return 1;
}
int main()
{
    //freopen("5.txt","r",stdin);
    //freopen("6.txt","w",stdout);
    int n,m,i,j;
    while(cin>>n >>m)
    {
        if(n == 0 && m == 0)break;
        if(n > m)
        {
            i = n;
            n = m;
            m = i;
        }
        j = 0;
        for(i = n; i <= m; i++)
        {
            if(is_prime(i))
            j++;
        }
        cout<< j<<endl;
    }
    return 0;
}

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题