博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客网 Wannafly挑战赛 A 找一找 思考题
阅读量:7211 次
发布时间:2019-06-29

本文共 911 字,大约阅读时间需要 3 分钟。

链接:

来源:牛客网

题目描述

给定n个正整数,请找出其中有多少个数x满足:在这n个数中存在数y=kx,其中k为大于1的整数

输入描述:

第一行输入一个n
接下来一行输入n个正整数a
i

输出描述:

输出符合条件个数
示例1

输入

51 2 3 4 5

输出

2

说明

5个数中1和2符合条件,1是后面每个数的因子,2是4的因子

备注:

1≤n,a
i
≤1000000 emmmmm,直接上代码把,用下标记数组,第二层循环用倍增,因为是倍增,所以最坏的时间复杂度是n/2+n/3+n/4...+n/n,在10^8左右所以可以通过题目了
#include
#include
#include
#include
#include
#include
#define maxn 1000010#define debug(a) cout << #a << " " << a << endlusing namespace std;typedef long long ll;int a[maxn];int main() { int n; while( cin >> n ) { memset(a,0,sizeof(a)); for( int i=0; i
> x; a[x] ++; //打标记 } int ans = 0; for( int i=1;i<=1000000;i++) { if( a[i] ) { for( int j=i+i; j<=1000000; j+=i ) { //倍增找倍数指 if( a[j] ) { ans += a[i]; break; } } } } cout << ans << endl; } return 0;}

 

 

转载于:https://www.cnblogs.com/l609929321/p/8408916.html

你可能感兴趣的文章
通信类
查看>>
Android4.4 及以下TextView,Button等控件使用矢量图报错
查看>>
浏览器回流认识
查看>>
react生命周期
查看>>
质因子分解
查看>>
Django搭建个人博客:文章标签功能
查看>>
Docker学习笔记
查看>>
61. Rotate List
查看>>
Linux CTF 逆向入门
查看>>
LeetCode-数组-三数之和
查看>>
Alain 菜单权限控制
查看>>
spring + angular 实现导出excel
查看>>
Linux环境升级node版本
查看>>
Linux快速复制或删除大量小文件
查看>>
怎么解决在微信中不能直接下载APP(APK)的方案
查看>>
从0到1,了解NLP中的文本相似度
查看>>
【C++】 54_被遗弃的多重继承 (下)
查看>>
一篇文章入门Flask
查看>>
Redis笔记(一)
查看>>
前端开发如何做好本地接口模拟
查看>>