素数判定
#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define int long long
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
const int N = 1e6+10;
int n,m;
int va[N];
signed main()
{
IOS;
long long n;
cin>>n;
int suc = 1;
if(n==1) suc = 0;
for(int i=2;i<=n/i;i++)
{
if(n%i==0)
{
suc = 0;
break;
}
}
if(suc) cout<<"YES";
else cout<<"NO";
return 0;
}
质因数分解
#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define int long long
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
const int N = 1e7+10;
int n,m;
int va[N],cnt = 0;
void init(int x)
{
for(int i=2;i<=x/i;i++)
{
if(x%i==0)
{
cnt++;
while(1)
{
va[cnt]++;
x /= i;
if(x%i!=0) break;
}
}
}
if(x!=1) va[++cnt] = 1;
}
signed main()
{
IOS;
cin>>n;
init(n);
return 0;
}
欧拉晒
#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define PII pair<int,int >
#define int long long
#define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
const int N = 1e7+10,M = 1e6;
int n,m;
bool vis[N];
int pri[N],cnt = 0;
void init(int x)
{
for(int i=2;i<=x;i++)
{
if(vis[i]==0) pri[++cnt] = i;
for(int j=1;j<=cnt;j++)
{
if(pri[j]*i>x) break;
vis[i*pri[j]] = 1;
if(i%pri[j]==0) break;
}
}
}
signed main()
{
IOS;
cin>>n;
init(n);
cout<<cnt;
return 0;
}
C++ 质数
最新推荐文章于 2024-07-24 21:03:53 发布