专栏文章
题解:P14073 [GESP202509 五级] 数字选取
P14073题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minqull7
- 此快照首次捕获于
- 2025/12/02 06:51 3 个月前
- 此快照最后确认于
- 2025/12/02 06:51 3 个月前
这道题很简单的,反正我看到就秒了。
思路
题目的意思是要求在 至 中选一些数,使得选取中的数两两互质,要最大化选取的个数。
要想要两两互质,那就应该选取质数,那问题就变成了求 至 中质数的个数。
但注意, 虽然不是质数,但它和任何数的最大公因数都是 ,所以 也要算进去。
代码
CPP#include<bits/stdc++.h>
using namespace std;
bool isPrime(int n){
if(n==2||n==1) return true;//1本身不是质数,但为了简便,在判断质数时特判了1
if(n%2==0) return false;
for(int i=3;i*i<=n;i+=2){
if(n%i==0) return false;
}
return true;
}
int main(){
int n;
cin>>n;
int Prime=0;
for(int i=1;i<=n;i++){
if(isPrime(i)) Prime++;
}
cout<<Prime;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...