ZCMU1543 Numbers
来源:互联网 发布:网络征婚成功率 编辑:程序博客网 时间:2024/05/23 21:16
题意就是 给你一个数p,找满足下列条件的数的个数:
1.D是P的因子;
2.D和P的二进制数至少有一个相同;
所以解题分两步:1、找出p的所有因子(最省时方法)
for(int i=1; i*i<=p; i++){ if(d%i==0) { //找到一个因子 d/i&&(i*i!=p) //相对应的另一个因子 }}
2、判断找到的因子是否和P有相同的二进制位
首先把P的二进制数保存,
for(int i=0; p!=0; i++){ a[i] = p&1; //相当于a[i]=a%2; p = p>>1; //右移一位,相当于p=p/2}
和因子n对应的二进制位比较:
int check(int n){ int r; for(int i=0; n!=0; i++, n=n>>1) { r = n&1; if(r==a[i]) return 1; } return 0;}
已AC代码:
#include <cstdio>using namespace std;int a[20];int check(int n){ int r; for(int i=0; n!=0; i++, n=n>>1) { r = n&1; if(r==a[i]) return 1; } return 0;}int main(){ int t; scanf("%d", &t); while(t--) { long long p, d, cont=0; scanf("%lld", &p); d = p; for(int i=0; p!=0; i++) { a[i] = p&1; p = p>>1; } for(int i=1; i*i<=d; i++) { if(d%i==0) { if(check(i)) cont++; if(check(d/i)&&(i*i!=d)) cont++; } } printf("%lld\n", cont); } return 0;}
0 0
- ZCMU1543 Numbers
- Numbers
- Numbers
- Numbers
- Numbers
- Numbers
- Ugly Numbers
- Humble Numbers
- Humble Numbers
- Palindrom Numbers
- Niven Numbers
- Alien Numbers
- Alien Numbers
- Phone Numbers
- usaco_humble numbers
- Alien Numbers
- Alien Numbers
- hdu1058humble numbers
- 什么是心跳线?心跳线,主要用于主从服务器之间,是连接工作机与备份机的网线
- 关于flush
- hdoj-1874
- 14、java并发面试题
- ORACLE DataGuard 主备库角色切换
- ZCMU1543 Numbers
- Max Sum
- MySQL百万级数据库优化方案
- 关于Python的自定义模块
- 关于python open函数缓冲区的问题
- 莫比乌斯究竟爱谁!
- 15、Java并发面试题
- SSH远程LINUX时Connection refused
- ConcurrentLinkedQueue源码阅读