在VC6中运行正确,在ACM中为什么会出现编译错误

题目是:素数个数Acceteped:125Submit:1147TimeLimit:1000MSMemoryLimit:65536KBDescription给定两个非负整... 题目是:素数个数

Acceteped : 125 Submit : 1147
Time Limit : 1000 MS Memory Limit : 65536 KB

Description

给定两个非负整数a,b,其中0<= a,b<=1,000,000,请计算这两个数之间有多少个素数。
输入
第一行是一个整数K(1<=K<=1000),表示有多少个样例,每个样例占一行,是两个整数a和b,每个整数之间用一个空格隔开。
输出
每行输出一个样例的结果。

Sample Input

2
2 3
17 19

Sample Output

2
2
我编的程序如下:
#include<cmath>
#include<iostream>
using namespace std;
#define N 1000000
bool arrBool[N];
sushu(int n)
{
int i,j,t=0;
memset(arrBool,true,sizeof(arrBool));
arrBool[0]=arrBool[1]=false;
for(i=2;i<sqrt(n);i++)
{ if(arrBool[i])
{
for(j=i*i;j<=n;j+=i)
arrBool[j]=false;
}
}
for(i=1;i<n;i++)
{
if(arrBool[i])
t++;
}
return t;
t=0;
}
int main()
{
int n,m,t;
cin>>t;
while((cin>>n>>m)&&t!=0&&n>=0&&m>=0)
{ if(m>n)
cout<<(sushu(m+1)-sushu(n))<<endl;
else
cout<<(sushu(n+1)-sushu(m))<<endl;
t--;
}
return 0;
}
展开
 我来答
cyrgw
2011-11-22
知道答主
回答量:12
采纳率:0%
帮助的人:7.2万
展开全部
你要检查你的编译器里面有没有包括这样的函数库或者头文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6fe6fa45d
2011-11-20 · TA获得超过606个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:224万
展开全部
int sushu(int n)
试试
追问
不行
追答
有可能是memset()函数不支持,你试下for循环赋值,如果不行把题目的链接发给我
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
santouren
2011-11-20 · 超过14用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:37.9万
展开全部
2 3这两个数之间有素数?
追问
是闭区间,2和3也包括在内
追答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式