http://noi.openjudge.cn/ch0113/10/
题目很简单,写完WA,原因是没有判断X,Y的大小关系。
#include <iostream>
#include <algorithm>
#include <string.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
bool isPrime(int n) {
if (n == 1) {
return false;
}
if (n == 2 || n == 3) {
return true;
}
if (n % 6 != 1 && n % 6 != 5) {
return false;
}
int sqr = (int)ceil(sqrt(n));
for (int i = 5;i <= sqr;i+=6) {
if (n%i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
int main() {
int x, y,count=0;
scanf("%d%d",&x,&y);
if (x > y) {
int temp = x;
x = y;
y = temp;
}
for (int i = x;i <= y;i++) {
if (isPrime(i)) {
count++;
}
}
printf("%d", count);
return 0;
}