rt
一.欧拉打表
#include <iostream>
#define maxn 0x3f3f
using namespace std;
int oula[maxn] = {0};
void ouladabiao()
{
oula[1] = 1;
for(int i = 2;i < maxn;i++)
{
if(!oula[i])
{
for(int j = i;j <= maxn;j+=i)
{
if(!oula[j])
{
oula[j] = j;
}
oula[j] = oula[j] / i * (i-1);
}
}
}
}
int main()
{
ouladabiao();
//cout << oula[8];
}
二.素数打表
(判断某值是否是素数)
#include <iostream>
#define N 1000005
#define ll long long
using namespace std;
int su[N] = {1,1,0};
void sushu()
{
for(int i = 2;i < N;i++)
{
if(!su[i])
{
for(int j = i+i;j <= N;j += i)
{
su[j] = 1;
}
}
}
}