题目
原题链接:A. Vasya and Petya's Game
题意
给出n,求最小数量的能判断1~n的任意数的因数。
这些因数可以组合为1~n的任意一个数。那质因子必不可少。
又参考其他作者的思路,再把所有质因子的倍数也加入即可。由此可得到最少程度的因子来组成任意1~n。
代码
#include<bits/stdc++.h>
using namespace std;
bool pri(int t){
for(int i=2;i<=sqrt(t);i++){
if(t%i==0) return 0;
}
return 1;
}
int main() {
int n,ans[1000],cnt=0;
cin>>n;
for(int i=2;i<=n;i++){
if(!pri(i)) continue;
int t=i;
while(t<=n) {
ans[cnt++]=t;
t*=i;
}
}
cout<<cnt<<endl;
for(int i=0;i<cnt;i++){
printf("%d",ans[i]);
printf("%c",i==cnt-1?'\n':' ');
}
return 0;
}