[Luogu P2563]质数和分解

时间:2023-03-09 02:35:02
[Luogu P2563]质数和分解

题目链接

话不多说,这是一道质数题+完全背包。先预处理筛出质数,直接背包就行。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int pr[],tot,x,f[];
bool vis[];
int main(){
for(int i=;i<=;++i){
if(!vis[i]){
pr[++tot]=i;
for(int j=i+i;j<=;j+=i)vis[j]=;
}
}
while(cin>>x){
memset(f,,sizeof(f));f[]=;
for(int i=;i<=tot&&pr[i]<=x;++i){
for(int k=pr[i];k<=;++k)f[k]+=f[k-pr[i]];
}
cout<<f[x]<<endl;
}
return ;
}