c语言求100以内的素数

我们c语言老师布置作业:求100以内的素数。希望哪位大哥帮忙写一下。另我是新学的?所以希望尽量写简单点,最好附注释

第1个回答  2015-11-12
#include<stdio.h>
int main()
{
int i,k,a[101];
for(i=1;i<=100;i++)
{
a[i]=i;
}
a[1]=0;
for(i=2;i<=100;i++)
{
for(k=2;k<i/2;k++)
{
if(a[i]%k==0)
a[i]=0;
}
}
for(i=1;i<=100;i++)
{
if(a[i]!=0)
printf("%4d",a[i]);
}
return 0;
}
第2个回答  2020-04-07
1解:
#include
#include
int
pr(int
n)
{
int
i;
for
(i=2;
i<=(int)sqrt(n);
i++)
if
(n%i==0)
return
0;
return
1;
}
int
main(void)
{
int
i;
long
int
sum=0;
for
(i=2;
i<=100;
i++)
sum+=pr(i)?i:0;
printf("%ld\n",sum);
return
0;
}
2解:
#include
int
isPrime(int
a)
void
main()
{
int
i,sum=0;
for(i=1;i<=100;i++)
{
if(isPrime(i))
sum+=i;
}
printf("100以内所有素数的和为:\n%d\n",sum);
}
int
isPrime(int
num)
{
int
i,tag=1;
for(i=2;tag&&i<=num/2;i++)
if(num%i==0)
tag=0;
return
tag;
}
第3个回答  2020-01-16
#include<stdio.h>#include<stdlib.h>
//system()函数包含在这个头文件中
void
main()
{
int
i,j,n=0;
system("cls");
//这句可以不要
for(i=3;i<=100;i++){
//符合语最好加大括号,哪怕是一句
for(j=2;j<=i-1;j++)
{
if(i%j==0)
break;
}
//这里丢了大括号,
if(i==j)
//这里有错,判断应该是==
而不是=
,要细心
{
printf("%d",i);
n++;
if(n%5==0)
printf("\n");
}

else
continue;
}
}
第4个回答  2010-01-23
#include<stdio.h>
int prime(int n)
{
if(n==1)
return 0;
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
for(int i=1;i<=100;i++)
if(prime(i))
printf("%d is prime\n",i);
}
第5个回答  2019-08-22
第二个for循环不能用t控制,因为t是flag再控制循环无法执行下去
#include<stdio.h>
void
main()
{
int
t,i,j;
for(i=3;i<=100;i++)
{t=1;
for(j=2;j<=(i/2);j++)
if(i%j==0)
t=0;
if(t==1)
printf("%d
",i);
}
}
相似回答