FFT质数打表程序
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- void sol(ll x){
- int y=0;
- for(ll i=2;i*i<=x;++i)
- if(x%i==0){
- int j=0;
- for(;x%i==0;x/=i)++j;
- if(y++)cout<<"*";
- cout<<i;
- if(j!=1)cout<<"^"<<j;
- }
- if(x!=1){
- if(y)cout<<"*";
- cout<<x;
- }
- cout<<endl;
- }
- bool jud(ll x){
- for(ll i=2;i*i<=x;++i)
- if(x%i==0)return 0;
- return 1;
- }
- ll wop(ll s,ll n,ll p){
- ll t=1;
- for(;n;n>>=1){
- if(n&1)t=t*s%p;
- if(n>1)s=s*s%p;
- }
- return t;
- }
- ll phi(ll x){
- ll s=x;
- for(ll i=2;i*i<=x;++i)
- if(x%i==0){
- while(x%i==0)x/=i;
- s=s/i*(i-1);
- }
- if(x!=1)s=s/x*(x-1);
- return s;
- }
- ll gen(ll p){
- static ll c[16];
- ll s=phi(p),x=s;
- int k=0;
- for(ll i=2;i*i<=x;++i)
- if(x%i==0){
- while(x%i==0)x/=i;
- c[k++]=i;
- }
- if(x!=1)c[k++]=x;
- for(ll i=2;;++i){
- int j=0;
- while(j!=k&&wop(i,s/c[j],p)!=1)
- ++j;
- if(j==k)return i;
- }
- }
- void out(ll p){
- int j=__builtin_ctzll(p-1);
- cout<<setw(8)<<p;
- cout<<setw(4)<<gen(p);
- cout<<" 2^"<<j;
- cout<<" * "<<setw(5)<<(p-1>>j);
- cout<<endl;
- }
- int main(){
- for(ll i=1;;++i){
- ll j=(i<<20)+1;
- if(j>2e9)break;
- if(jud(j))out(j);
- }
- }
FFT质数打表程序的更多相关文章
- PHP自动分表程序
http://blog.zol.com.cn/2210/article_2209590.html /** * 分表程序 * * @author Shen Xi shen.xi@zol.com.cn ...
- python作业员工信息表程序(第四周)
作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...
- HDU——1286找新朋友(欧拉函数+质数打表)
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- ABAP 通过字段找表程序
2.获取数据保存在哪个数据表的方法: 1.前台对指定栏位 使用F1帮助找表,2.st05 跟踪业务操作过程,检索需要的数据表,(此方法找表很高效)3.对于文本字段找表,可以找到前台维护处,->维 ...
- python九九乘法表程序代码
按照c语言的思路来考虑python的,方法很简单,直接运用双重循环即可,本代码为了代码量少采用的是while嵌套双循环. 取两个随机变量 (1)i和j都从1开始(因为表中最小数值为1) (2)i控制第 ...
- 用shell编写小九九乘法表程序
1.使用for循环 运行结果: 2.方法二:for循环 运行结果: 备注: 1. echo -n 的意思是不自动换行,因为在linux shell中 echo到最后一个字符时会自动换行的,所以echo ...
- bzoj 1053 [HAOI2007]反素数ant——关于质数的dfs / 打表
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1053 写了个打表程序. #include<iostream> #include& ...
- 用友时空B/S表单外挂(接口)程序操作说明文档
用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据, ...
- BZOJ3798: 特殊的质数(分段打表)
题意 题目链接 Sol 分块打表,非常好的思想. 对于这种求$[A, B]$区间内xxx的数的个数,然后$B$又不算是特别大的题,考虑分段打表 每个块的大小为$10^5$,打$3 * 10^3$个.然 ...
随机推荐
- [BZOJ2730][HNOI2012]矿场搭建(求割点)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2730 分析: 如果坍塌的点不是割点,那没什么影响,主要考虑坍塌的点是割点的情况. 显然 ...
- Java关键字this、super使用总结
版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. 作者:熔岩日期:2007-03-01MSN :leizhimin@126.com声明:原创作品,未经授权,谢绝转载! 好久没有对所学知 ...
- Matlab 的reshape函数
看Matlab的help文档讲得不是清楚. 先给上一段代码: >> a=[1 2 3;4 5 6;7 8 9;10 11 12]; >> b=reshape(a,2,6); 这 ...
- 使用delegate实现简单的查询功能
protected void imgbtnSearch_Click(object sender, System.Web.UI.ImageClickEventArgs e) { string keyWo ...
- Thinkphp url 除去index.php
例如你的原路径是 http://localhost/test/index.php/index/add那么现在的地址是 http://localhost/test/index/add如何去掉index. ...
- extjs store的操作
先来个声明,看着不错,贴过来的,没都测试过. Store.getCount()返回的是store中的所有数据记录,然后使用for循环遍历整个store,从而得到每条记录. 除了使用getCount() ...
- [转]response.getWriter().write()与out.print()的区别
原文地址:http://blog.csdn.net/javaloveiphone/article/details/8133772 1.首先介绍write()和print()方法的区别: (1).w ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- ajax技术应用(转)
ajax简介 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.Ajax不 ...
- 安装Win7提示Windows无法安装到磁盘怎么办
Windows之家(www.windowszj.com):在安装Win7系统的过程中,由于每台电脑的状态不一样,比如硬件配置原因,或者是硬盘格式.硬盘状态等问题,会使得每台电脑在安装过程中都会有些不一 ...