打印100~200之间的素数
方法一:素数:除了1和它本身,不能被其他自然数整除。用它本身去对2到它本身减去1的数进行取余运算。
代码1:
#include<stdio.h>
#include<Windows.h>
int main()
{
int i=0;
int j=0;
int count=0;
printf("100-200间的素数有:\n");
for(i=100; i<201; i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
{
break;
}
}
if(i==j)
{
printf("%d ",i);
count++;
}
}
printf("\n");
printf("素数一共有:%d\n",count);
system("pause");
return 0;
}
方法二:优化:素数一定不是偶数。所以每次给i加2(100不是素数,从101开始)
代码2:
#include<stdio.h>
#include<Windows.h>
int main()
{
int i=0;
int j=0;
int count=0;
printf("100-200间的素数有:\n");
for(i=101; i<201; i+=2)
{
for(j=2;j<i;j++)
{
if(i%j==0)
{
break;
}
}
if(i==j)
{
printf("%d ",i);
count++;
}
}
printf("\n");
printf("素数一共有:%d\n",count);
system("pause");
return 0;
}
方法三:优化:除了1和它本身,不能被其他自然数整除。用它本身去对2到它本身的一半的数进行取余运算。
代码3:
#include<stdio.h>
#include<Windows.h>
int main()
{
int i=0;
int j=0;
int count=0;
printf("100-200间的素数有:\n");
for(i=100; i<201; i++)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
break;
}
}
if(j>i/2)
{
printf("%d ",i);
count++;
}
}
printf("\n");
printf("素数一共有:%d\n",count);
system("pause");
return 0;
}
方法四:优化:除了1和它本身,不能被其他自然数整除。用它本身去对2到它本身开根的数进行取余运算。
代码4:
#include<stdio.h>
#include<Windows.h>
#include<math.h>
int main()
{
int i=0;
int j=0;
int count=0;
printf("100-200间的素数有:\n");
for(i=100; i<201; i++)
{
for(j=2;j<= sqrt(i);j++)
{
if(i%j==0)
{
break;
}
}
if(j>sqrt(i))
{
printf("%d ",i);
count++;
}
}
printf("\n");
printf("素数一共有:%d\n",count);
system("pause");
return 0;
}