用C语言编写在自然数中输出100以内的素数?
#include<stdio.h>
//输出100之内的所有素数
int main()
{
int i;
int j;
int flag = 1;
for(i = 2;i <= 100;i++)
{
for(j = 2;j <= i / 2;j++)
{
if(i % j ==0)
{
flag = 0;
break;
}
}
if(flag == 1)
{
printf("%d\n",i);
}
flag = 1;
}
return 0;
}
扩展资料
#include <stdio.h>
int main()
{
int a;
for (int i = 2; i < 100; i++)
{
int a = 0;
/* code */
for (int j = 2; j < i; j++)
{
/* code */
if (i % j == 0)
{
/* code */
a++;
}
}
if (a == 0)
{
/* code */
printf("%d is sushu\n", i);
}
else
{
/* code */
printf("%d is not sushu\n", i);
}
}
return 0;
}
在自然数中输出100以内的素数的源代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
int x;
scanf("%d",&x);
if(x==2||x==3)
{
printf("%d是素数",x);
return 0;
}
else if((x==1)||(x%6!=1&&x%6!=5))
{
printf("%d不是素数",x);
return 0;
}
else
{
for(int i=5;i<=sqrt(x);i+=6)
if(x%i==0||x%(i+2)==0)
{
printf("%d不是素数",x);
return 0;
}
printf("%d是素数",x);
return 0;
}
扩展资料
/*判断101-200之间有多少个素数,并输出所有素数及素数的个数的源代码如下:
#include "math.h"
main()
{
intm,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{
leap=0;break;
}
if(leap) /*内循环结束后,leap依然为1,则m是素数*/
{printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThetotal is %d",h);
}
#include <stdio.h>
int main()
{
int a[101]={0},i,m;
for(i=2;i<=100;i++)
for(m=2;i*m<=100;m++)
a[i*m]=1; \*被赋为1的数组元素的下标则不是素数*\
for(i=2;i<=100;i++)
if(a[i]==0)
printf("%d",i);
}
下面给出另一代码:
#include <stdio.h>
int main()
{
int i,j,k=1;
printf("100以内的素数有:2 "); \*首先输出2*\
for(i=3;i<=100;i++)
{ for(j=2;j<i;j++)
if(i%j==0) { k=0;break; }
if(k==1)
printf("%d ",i);
}
}
上面代码还可用到sqrt()函数for(j=2;j<i;j++)改为for(j=2;j<sqrt(i);j++)这样可简化计算。希望对你有帮助。
int main(void)
{
int i,j,k;
printf("%d\n",2);2肯定是素数[em02]
for(i=1;i<=100;i+=2)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
printf("%d\n",i);
}
return 0;
}
C语言经典例子之求100之内的素数