2164 - XDZ 的成长
时间限制 : 1 秒
内存限制 : 128 MB
又是一道关于 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 成长的题目吧。 </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; }