您的位置:首页 > 其它

素数判定

2016-08-13 21:38 267 查看


题目:http://acm.hust.edu.cn/vjudge/contest/127946#status//D/0

简单的素数判定,没看懂题真可怕。。~~~~(>_<)~~~~ 不过看懂了题也想不到输出要加精度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#include <stdio.h>
#include <string.h>
int f(int n)
{
int i;
for(i=2;i*i<=n;i++)
{
if((n%i)==0)
return 0;
}
return 1;
}
int main()
{
int num[10010];
int i;
int a,b;
int sum;
memset(num,0,sizeof(num));
for(i=0;i<=10005;i++)
num[i]=f(i*i+i+41);
while(scanf("%d%d",&a,&b)!=-1)
{
sum=0;
for(i=a;i<=b;i++)
sum+=num[i];
printf("%.2f\n",sum*1.0/(b-a+1)*100+1e-8);
}
return 0;
} 


为什么又超时~~~~(>_<)~~~~
//超时。。。
#include<cstdio>
int f(int n)//素数判定
{
for(int i=2;i*i<=n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
int t=1,sum=0;
for(int i=a;i<=b;i++)
{
sum+=f(i*i+i+41);

}
printf("%.2f\n",sum*1.0/(b-a+1)*100+1e-8);

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: