33,311
社区成员
发帖
与我相关
我的任务
分享
if(b=2)
if(b==2)
#include<stdio.h>
int main()
{
int x,i,b=0;
for(x=2;x<=1000;x++)
{
for(i=1;i<=x;i++)
{
if(x%i==0)
b=b+1;
}
if(b==2)
printf("%d\n",x);
b=0;
}
return 0;
}
#include<stdio.h>
int main()
{
int i=0,j=0;
int a[1001];
for(i=0;i<=1000;i++)
a[i]=1;
for(i=2;i<=1000;i++)
{
if(a[i])
{
printf("%6d",i);
for(j=i+1;j<=1000;j++)
{
if(j%i==0)
a[j]=0;
}
}
}
return 0;
}
另一种思路#include<stdio.h>
#include <math.h>
#define LINE_MAX 10
int is_prime(int n);
int main()
{
int i, cnt = 0;
for (i = 2; i < 1000; i++)
if (is_prime(i)) {
printf("%3d ", i);
cnt++;
if (cnt % LINE_MAX == 0)
putchar(10);
}
printf("\n total prime is %d\n", cnt);
/*
int x, i, b=0;
for(x=2;x<=1000;x++)
{
for(i=1;i<=x;i++)
{
if(x%i==0)
b=b+1;
}
if(b=2)
{
printf("%d\n",x);
b=0;}
}
*/
return 0;
}
int is_prime(int n)
{
int i, size;
size = sqrt(n);
for (i = 2; i <= size; i++)
if (n % i == 0)
break;
if (i > size)
return 1;
return 0;
}
参考一下吧;
注意
if(b=2)
这个问题很普遍,b = 2是赋值表达式,不是判断表达式,因此应该是:
if(b==2)