今天看网课,想默写打打看判断素数的代码,结果有个数据错了,看了好久不知道我哪里出错了
就是数组下标为要判断的值,那个数组单元为1说明下标值就是素数,0就不是
图示代码
我的代码
#include<stdio.h>
#define max 15
int main(void)
{
int prime[max]={0,0,1};
int i;
int x;
for(i=2; i<max; i++)
{
prime[i] = 1;
}
for(i=2; i<max; i++)
{
if(prime[i])
{
for(x=2; x*i<max; x++)
{
prime[x*i] = 0;
}
}
for(i=2; i<max; i++)
{
printf("%d\t",i);
}
printf("\n");
for(i=2; i<max; i++)
{
printf("%d\t",prime[i]);
}
printf("\n");
for(i=2; i<max; i++)
{
if(prime[i])
printf("%d\t",i);
}
}
return 0;
}
输出结果
为什么我的prime[9]的值会是1呢