我想了很久了,后来还是把N分解质因数,枚举各种组合,反正也不多吧,按题目条件,然后就过了。

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cctype>
#include <algorithm>
#define LL __int64
using namespace std; LL prime[100010],np;
int fac[100010],nf;
int cnt,nop;
struct Node{
LL f;
int cnt;
}node[100100];
LL ans[100010]; void predo(LL n){
np=0;
bool isprime[100010];
memset(isprime,false,sizeof(isprime));
for(LL i=2;i<=n;i++){
if(!isprime[i]){
isprime[i]=true;
prime[np++]=i;
for(LL j=i*i;j<=n;j+=i)
isprime[j]=true;
}
}
} bool Isprime(LL n){
nf=0;
for(LL i=0;i<np&&prime[i]<=n;i++){
if(n%prime[i]==0){
while(n%prime[i]==0){
fac[nf++]=prime[i];
n/=prime[i];
}
}
}
if(n!=1){
fac[nf++]=n;
}
if(nf<=1) return true;
return false;
} LL GCD(LL a,LL b){
if(b==0) return a;
return GCD(b,a%b);
} void dfs(LL n,int pos,LL gcd){
if(pos==nop+1){
LL x=n^gcd;
if(x>=n) return ;
if(x==0) return ;
if(gcd==GCD(n,x))
ans[cnt++]=x;
return ;
}
for(int i=0;i<=node[pos].cnt;i++){
if(i==0){
dfs(n,pos+1,gcd);
}
else{
gcd*=node[pos].f;
dfs(n,pos+1,gcd);
}
}
} int main(){
int t=0;
LL n;
predo(100010LL);
while(scanf("%I64d",&n)!=EOF){
if(n==1LL||n==2){
printf("Case #%d:\n",++t);
puts("0");
puts("");
continue;
}
if(Isprime(n)){
printf("Case #%d:\n",++t);
puts("1");
printf("%I64d\n",n-1);
}
else{
nop=-1;
for(int i=0;i<nf;i++){
if(i==0||fac[i]!=fac[i-1]){
node[++nop].f=fac[i];
node[nop].cnt=1;
}
else
node[nop].cnt++;
} cnt=0;
dfs(n,0,1LL);
sort(ans,ans+cnt);
printf("Case #%d:\n",++t);
printf("%d\n",cnt);
if(cnt==0){
puts("");
continue;
}
printf("%I64d",ans[0]);
for(int i=1;i<cnt;i++){
printf(" %I64d",ans[i]);
}
printf("\n");
}
}
return 0;
}

  

最新文章

  1. hdu 4920 Matrix multiplication bitset优化常数
  2. 为模版设计师而生的Twig(下)-Twig使用指南
  3. Scrum 项目 7.0
  4. Sql Server来龙去脉系列之二 框架和配置
  5. ADO.NET学习系列(一)
  6. YTU 2610: A改错题--体检情况分析
  7. 必应词典--英语学习APP案例分析
  8. 基于iframe的移动端嵌套
  9. 浅析c++和c语言的enum类型
  10. EasyUI easyui-combobox实现数据联动
  11. arcgis api 3.x for js 实现克里金插值渲染图不依赖 GP 服务(附源码下载)
  12. mysql ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constrain fails
  13. Python自然语言处理笔记【一】文本分类之监督式分类
  14. iptables限制同一IP连接数,防防CC/DDOS攻击
  15. php高级工程师面试题,行不行对照看下自己的实力
  16. mybatis总结之一
  17. JS里面的懒加载(lazyload)
  18. mapreduce设置setMapOutputKeyClass与setMapOutputValueClass原因
  19. 测试RemObjects Pascal Script
  20. struts2(三) 输入校验和拦截器

热门文章

  1. 【BZOJ 3790】 神奇项链
  2. CentOS7 内核参数优化
  3. PCB WCF Web接口增减参数后,在客户端不更新的情况,是否影响客户端,评估测试
  4. 【BZOJ4555】【TJOI2016】【HEOI2016】求和
  5. Windows&lt;小白&gt;详细笔记
  6. B - Chat room
  7. EntityFramewok 插入Mysql数据库 中文产生乱码解决
  8. 实现Brush对象的五种图形
  9. js 事件冒泡、事件捕获、stopPropagation、preventDefault
  10. 本博客基本不再更新,请移步至我的CSDN博客