sgu 102 Coprimes 解题报告及测试数据
2024-08-27 07:39:20
102. Coprimes
time limit per test: 0.25 sec.
memory limit per test: 4096 KB
题解:
求一个1-10000之间的数 N 的互质数个数。题目很简单,有两种方法:
1、复杂度是O(n^2),依次判断从1到N-1的数是否与N互质。
2、复杂度是O(n),换一种想法,先求与N不互质的数的个数,然后用N减去即可。例如9,从2开始循环,3与9不互质,那么3的倍数也与9不互质,所以6也与9不互质。因为N很小,所以可以开一个数组a[10005],初始化为0,将与N不互质的位置标记为1,然后cnt++。
以下是代码(解法2):
#include <iostream>
using namespace std;
int a[10005];
int main(){
int n,cnt=1;//cnt初始化为1,即默认n与n不互质
cin >> n;
for(int i=2;i<n;i++)
if(a[i]==0){ //如果i是n的因数,且未标记过
if(n%i==0)
for(int j=1;j*i<n;j++)//将所有i的倍数,标记为 1 ,cnt++
if(a[i*j]==0){
a[j*i]=1;
cnt++;
}
}
if(n==1)cout << "1"<<endl;
else cout << n-cnt<<endl; //n-cnt即是答案
}
以下是测试数据:
sample input
100
50
18
10
9
sample output
40
20
6
4
6
最新文章
- Js/Jquery获取iframe中的元素
- Oracl中sql书写技巧
- sql事务的调用
- Spring + Spring MVC+Hibernate框架整合详细配置
- Docker中自动化搭建Hadoop2.6完全分布式集群
- 利用gitHub搭建博客
- 常用SQL语句优化技巧
- C#获取网上图片的宽高代码
- [Android] Android开发优化之——使用软引用和弱引用
- Bleed Brake Master Cylinder with Intelligent Tester IT2
- TP5学习基础二:目录结构、URL路由、数据操作
- UI性能优化
- asp.net 限制上传文件的大小与时间
- ThinkPhp3.2.3 使用phpExcel导入数据
- MySQL(十一)视图及存储过程
- SpringMVC @SessionAttributes 使用
- JS常用工具函数(持续记录)
- 【干货】Linux内存数据的获取与转存 直捣密码
- Python.__getattr__Vs__getattribute__
- GitLab 项目创建后地址由Localhost改为实际IP的方法