程序超时了怎么办?题目和我写的代码都在下面了。
/*素数
时间限制:500MS 内存限制:1000K
Description
数学对于计算机学是很重要的,大一的高数就曾经(或即将)令一批又一批人饮恨。这里就是一个数学问题,当然,它不需要用到高深的高数知识。
给出n(1<=n<=100000),问1到n之间有几个素数。
输入格式
第1行,1个整数T(T<=100000),表示共有T组测试数据
第2---第T+1行,每行1个整数,表示测试数据n
输出格式
对于每个测试数据,输出1行,每行1个数,表示1到n之间的素数个数
输入样例
5
1
2
100
1000
5000
输出样例
0
1
25
168
669
*/
#include <stdio.h>
main()
{
int n,i,a[100000],j,m,s=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
for(j=2,s=0;j<=a[i];j++)
{
for(m=2;m<=j/2;m++)
{
if(j%m==0)
goto L;
}
s++;
L:;
}
printf("%d\n",s);
}
}