- 输入100到200之间所有的素数。
(1)通过两层for循环实现
#include <stdio.h>
int main()
{
int i;
int j;
for (i=100;i<=200;i++)
{
for (j=2;j<=i-1;j++)
{
if(i%j==0)
break;
}
if(j==i)
printf("%d ",i);
}
return 0;
}
优化:
#include <stdio.h>
int main()
{
int i;
int j;
for (i=101;i<=200;i=i+2)
{
for (j=2;j<=i/2;j++)
{
if(i%j==0)
break;
}
if(j>=i/2)
printf("%d ",i);
}
return 0;
}
(2)通过比较记录的次数
#include <stdio.h>
int main()
{
int i,j;
int count=0;
for (i=100;i<=200;i++)
{
count=0; //每一次count都需要从0开始
for (j=2;j<=i-1;j++)
{
if(i%j==0)
break;
else
count++;
}
if(count==i-2) //记录次数比较
printf("%d ",i);
}
return 0;
}
(3)布尔类型
#include <stdio.h>
int main()
{
int i,j;
bool flag;
for( i=100;i<=200;i++ )
{
flag = true;
for( j=2;j<=i-1;j++ )
{
if( i%j==0 )
{
flag=false;
break;
}
}
if( flag )
printf("%d ",i);
}
return 0;
}
注:应用布尔类型在VC6.0中不能实现。可在Microsoft Visual Studio 2008中实现。
时间: 2024-12-24 20:43:04