/*
2-type B|D^k
3-type B|D-1
11-type B|D+1
6-type B质因子分解,
7-type 其他情况 3-type:
(a*(D^4-1)+b*(D^3-1)+...+d*(D-1)) % B = 0
B|(D-1)
11-type:
(a*(D^4-1)+b*(D^3+1)+c*(D^2-1)+d*(D^1+1)) % B=0
B|(D^k+(-1)^k)
k为奇数时,D^k-1因式分解后必然有B|(D+1)
k为偶数时,(D+1)(D^(k-1)-D^(k-2)+D^(k-3)...+1),也必有B|(D+1)
且对于任意的k,(D^k+(-1)^k)只有(D+1)这个公因子 */
#include<bits/stdc++.h>
using namespace std;
#define ll long long int prime[],vis[],m;
void init(){
for(int i=;i<=;i++){
if(!vis[i])prime[++m]=i;
for(int j=i;j<=;j+=i)
vis[j]=;
}
} ll D,B;//D进制下,除数是B int k;
int calc(ll B){
if((D-)%B==)return ;
if((D+)%B==)return ;
ll tmp=D;
k=;
for(;tmp<=1e16;tmp*=D){//2^7
++k;
if(tmp%B==)return ;
} return -;
} int main(){
init();
cin>>D>>B;
int res=calc(B);
if(res!=-){
if(res==){
cout<<"2-type"<<'\n';
cout<<k<<'\n';
return ;
}
else if(res==){
cout<<"3-type"<<'\n';
return ;
}
else if(res==){
cout<<"11-type"<<'\n';
return ;
}
return ;
} for(int i=;i<=m;i++)
if(B%prime[i]==){//每个质因子都要符合要求
ll tmp=;
while(B%prime[i]==)
B/=prime[i],tmp*=prime[i];
int res=calc(tmp);
if(res==-){
cout<<"7-type"<<'\n';
return ;
}
} cout<<"6-type"<<'\n';
}

数论+乱搞——cf181B的更多相关文章

  1. SPOJ - POLYNOM Polynomial(数论乱搞)题解

    题意 :给你n个数,问你是否存在一个多项式(最多三次方)满足f(i)= xi. 思路:讲一个神奇的思路: x3 - (x - 1)3 = 3x2 - 3x + 1 x2 - (x - 1)2 = 2x ...

  2. Luogu P1134 阶乘问题 【数学/乱搞】 By cellur925

    输入输出格式 输入格式: 仅一行包含一个正整数 NN . 输出格式: 一个整数,表示最右边的非零位的值. 输入输出样例 输入样例#1: 12 输出样例#1: 6 说明 USACO Training S ...

  3. URAL 1827 Indigenous Wars(排序、乱搞)

    题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...

  4. UVA 11853 [dfs乱搞]

    /* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...

  5. Codeforces 732e [贪心][stl乱搞]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...

  6. 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)

    4692: Beautiful Spacing Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 46  Solved: 21[Submit][Statu ...

  7. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 367  Solved: 159[Submit][Status][ ...

  8. 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞

    2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 70  Solved: 24[Submit][Status][D ...

  9. SCOI 2013 密码 & 乱搞

    题意: Fish 是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息:1. 该密 ...

随机推荐

  1. HTML5+CSS3特效设计集锦

    20款CSS3鼠标经过文字背景动画特效 站长之家 -- HTML5特效索引 爱果果h5酷站欣赏  30个酷毙的交互式网站(HTML5+CSS3) 轻松搞定动画!17个有趣实用的CSS 3悬停效果教程 ...

  2. 跨主机网络-overlay(18)

    docker overlay跨主机网络 .环境 docker版本 Docker version -ce, build fc4de44 3台主机 192.168.55.51 host1 192.168. ...

  3. tomcat部署项目遇到的问题

    场景:在一台服务器上部署多个Tomcat,每个Tomcat下运行各自的项目 * )启动Tomcat startup.cmd报错: java.lang.Exception: Socket bind fa ...

  4. leetcode上的一些单链表

    147- 思路: 148- 思路: 24- 思路: 25- 思路: 21- 思路: 109- 思路: 237- 思路:

  5. npm ERR! cb() never called! npm ERR! This is an error with npm itself. Pleas

    原因是:需要用管理员的身份才能进行 方法:点开始,找到命令提示符,右键,点以管理员的身份运行命令即可

  6. 模板引擎的简单原理template

    ​ var templateStr = "我的名字叫<%=name%>我是一只小狗,今年<%=age%>岁."; var data = { name:'旺财 ...

  7. 基于nodejs的一个实时markdown转html工具小程序

    1.版本一 - 1.1`npm install marked --save` 安装markdwon转html的包.- 1.2 使用watchFile监视 markdown文件 /** * Create ...

  8. Django框架(二十)—— Django rest_framework-认证组件

    目录 Django rest_framework-认证组件 一.什么是认证 二.利用token记录认证过的用户 1.什么是token 2.token的原理 3.cookie.session.token ...

  9. kafka的简介

    1. kafka是一个分布式消息队列.具有高性能.持久化.多副本备份.横向扩展能力.生产者往队列里写消息,消费者从队列里取消息进行业务逻辑.一般在架构设计中起到解耦.削峰.异步处理的作用. 1.1 b ...

  10. jmeter 不同线程组之间传递变量3

    jemter编写脚本要点: 1.切记:BeanShell PostProcessor写在关联函数 Regular Expression Extractor的后面 2.header  HTTP Head ...