哭了,这代码编译没问题,运行的时候没有输出结果

#include<stdio.h>
#include<time.h>
#include<math.h>
//方法一
bool prime1(long n) {
long i;
for(i=2; i<=n; i++)
if(n%i==0)
return false;
return true;
}
void PrimeTime1(long n)
{
clock_t t;
long sum=0,i;
t=clock();
for(i=2; i<=n; i++)
if(prime1(i))
sum++;
t=clock()-t;
printf("方法1:\n");
printf(" 结果:2%d的素数个数:%d\n",n,sum);
printf(" 用时:%1f秒\n",((float)t)/CLOCKS_PER_SEC);
}
//方法二
bool prime2(long n)
{
long i;
for(i=2; i<=(int)sqrt(n); i++)
if(n%i==0)
return false;
return true;
}
void PrimeTime2(long n) {
clock_t t;
long sum=0,i;
t=clock();
for(i=2; i<=n; i++)
if(prime2(i))
sum++;
t=clock()-t;
printf("方法2:\n");
printf(" 结果:2
%d的素数个数:%d\n",n,sum);
printf(" 用时:%1f秒\n",((float)t)/CLOCKS_PER_SEC);
}
//------------------------------------------------------
int main() {
long n;
printf("n(大于100000):");
scanf("%d",&n);
if(n<10000)return 0;
PrimeTime1(n);
PrimeTime2(n);
return 1;
}

求助求助

输入语句错了:

// scanf("%d", &n); //错误,n是long类型,需要用 %ld
scanf("%ld", &n);