2 条题解
-
3
#include <stdio.h> const int N=3e5+10; int pri[N]={0}; bool f[N]={0}; int n,k; int kk=0; void isp(){ for(int i=2;i<=n;i++){ if(f[i]==0){ pri[kk++]=i; } for(int j=0;j<kk;j++){ if(pri[j]*i>n) break; f[pri[j]*i]=1; if(i%pri[j]==0) break; } } } int main(){ scanf("%d %d",&n,&k); isp(); if(kk+1<k){ printf("NO\n"); }else{ printf("YES\n"); printf("1 "); for(int i=0;i<k-1;i++){ printf("%d ",pri[i]); } printf("\n"); } } -
1
#include <stdio.h> const int N=1e6+5; int a[N]; int b[N]; int n,k; int temp=0; int main() { b[0]=0; b[1]=1; a[++temp]=1; scanf("%d %d",&n,&k); for(int i=2;i<=n;i++){ int ok=0; for(int k=2;k*k<=i;k++){ if(i%k0) { ok=1; break; } } if(ok0){ a[++temp]=i; b[i]=b[i-1]+1; }else {b[i]=b[i-1];}} if(b[n]>=k){ printf("YES\n"); for(int y=1;y<=k;y++){ printf("%d ",a[y]); } }else printf("NO\n"); return 0;
}
- 1
信息
- ID
- 1169
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 414
- 已通过
- 49
- 上传者