ふるい法は素数を求めます(C言語/C++)

2471 ワード

素数とは
定義#テイギ#
   1     ,  1                   。

C言語実現判定素数
int prime(int x)
{
  for(int i=2;i*i<=x;i++)
  {
    if(x%i==0)
      return 0;
  }
  return 1;
}

このコードはわかりやすいはずですが、n以内の素数を求めると、この方法は遅くなりますので、次の節をご覧ください
ふるいほうそすう
#include 
#include 
#include 
#include 
using namespace std;
bool f[1000005];
int main()
{
  int n;
  scanf("%d",&n);
  f[1]=false;
  for(int i=2;i<=n;i++)
  f[i]=true;
  for(int i=2;i<=n;i++)
  {
    if(f[i]==true)
    {
      for(int j=2;j*i<=n;j++)
      f[i*j]=false;
    }
  }
  for(int i=2;i<=n;i++)
  if(f[i])
  printf("%d ",i);
}