fft质数打表程序

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void foo(ll x){
	int flag=0;
	for(ll i=2;i*i<=x;++i)
		if(x%i==0){
			int j=0;
			for(;x%i==0;x/=i)
				++j;
			if(flag++)
				cout<<"*";
			cout<<i;
			if(j!=1)
				cout<<"^"<<j;
		}
	if(x!=1){
		if(flag)
			cout<<"*";
		cout<<x;
	}
	cout<<endl;
}
bool bar(ll x){
	for(ll i=2;i*i<=x;++i)
		if(x%i==0)
			return 0;
	return 1;
}
ll pow(ll u,ll v,ll p){
	ll a=1;
	for(;v;v>>=1){
		if(v&1)
			a=a*u%p;
		u=u*u%p;
	}
	return a;
}
ll root(ll d,ll q){
	ll k=0,a[16];
	for(ll i=2,j=d;;++i){
		if(j%i==0){
			a[k++]=i;
			while(j%i==0)
				j/=i;
		}
		if(j<i*i){
			if(j!=1)
				a[k++]=j;
			break;
		}
	}
	for(ll i=2;;++i){
		ll j=0;
		for(;j!=k&&pow(i,
		d/a[j],q)!=1;++j);
		if(j==k)
			return i;
	}
}
int m;ll x,v[10000];
int main(){
	for(int j=17;j<30;++j)
		for(ll i=1;
		(x=i*(1<<j)+1)<1e8;++i)
			if(i%2&&bar(x))
				v[m++]=x;
	sort(v,v+m);
	for(int i=0;i!=m;++i){
		cout<<setw(8)<<v[i]
		<<setw(4)
		<<root(v[i]-1,v[i]);
		int j=0;
		for(--v[i];v[i]%2==0;++j)
			v[i]/=2;
		cout<<setw(4)<<"2^"
		<<j<<" * "
		<<setw(5)<<v[i]<<endl;
	}
}

  

时间: 2024-09-29 20:56:24

fft质数打表程序的相关文章

Python 基础 - Day 4 Assignment - 员工信息表程序

作业要求及初步思路 员工信息表程序,实现增删改查操作: ① 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 select * from staff_table where dept = "IT" select * from staff_table where enroll_date like "2013"② 解决方案: sql语句的python解析问题,即将用户输入的sql

window 7 64位下可运行的递归删除注册表程序

为了完成一个简单的注册表删除程序,由于我本身是win7 64位的OS,写了以下代码来递归删除注册表键值,程序代码如下: #include <tchar.h> #include <afx.h> #define KEY_WOW64_64KEY 256 long DeleteSubKeyTree(HKEY hKey, LPCTSTR lpSubKey) { LONG lResult; HKEY hSubKey; DWORD dwIndex, cbName; char szSubKey[5

顺序表程序实现

由于线性表中每个数据元素的类型相同,可以用C或C++语言中的一维数组来实现顺序表. #include<iostream>using namespace std;#define LIST_INIT_SIZE 50class SqList{int *elem;//存′?储′¢空?间?基ù址·int length;//当μ±前°长3¤度èint listsize;//当μ±前°分·?配?的μ?存′?储′¢容èY量á?public:    SqList(int leng);    int Locate

python Day 4 :员工信息表程序

员工信息表程序,实现增删改查操作: 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 select  * from staff_table where dept = "IT" select  * from staff_table where enroll_date like "2013" 查到的信息,打印后,最后面还要显示查到的条数 可创建新员工纪录,以phone做唯一键,s

第四周作业 员工信息表程序

员工信息表程序,主要用到知识点: 1.文件的读写操作 2.程序目录规范化 3.不同目录间文件的调用 本周学习内容: 一.序列化和反序列化 序列化:字典等类型变成字符串存到内存. a.json.dumps(变量)(字典等简单类型的序列化): b.pickle.dumps(变量)  (只针对本语言的函数等所有类型的序列化) 反序列化:内存的字符串变成字典等类型读出来. a.可以用eval()针对字典类型: b.json.loads(f.read()): c.pickle.loads(f.read()

ABAP 通过字段找表程序

2.获取数据保存在哪个数据表的方法: 1.前台对指定栏位 使用F1帮助找表,2.st05 跟踪业务操作过程,检索需要的数据表,(此方法找表很高效)3.对于文本字段找表,可以找到前台维护处,->维护长文本->表头->表名,4.F1某些时候找表找到的是结构,可以试着通过结构找include 组件,有找到表的可能,还可以通过相关视图去查找,(找到视图基本就能找到表)4.通过相关标准report / query去查找:5.找到对应程序,或者相应操作,使用调试+设置watchpoint 查找,6.

质数计算打印程序代码

话不多说,直接上代码. int printPrimaryNumber(int nUpperBound) { int iTotal = 0; // Primary number start with 2. for (int i = 2; i <= nUpperBound; i++) { bool isPrimary = true; for (int j = 2; j < i; j++) { if (i % j == 0) { isPrimary = false; break; } } if (i

用友时空B/S表单外挂(接口)程序操作说明文档

用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据,实施部署简单且后续维护简单.而劣势则在于与第三方接口很麻烦,特别是需要在本地进行对接时. 例如,POS收款软件,往往需要与医保系统对接,与银联系统对接,这些本地接口,都要求数据实时与第三方系统进行交互,如果是需要中转到远程的总部的服务器才能对接,则往往容易出现网络错误或者数据不及时等. 我们把这种需

COJ 0486 800401反质数

800401反质数 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g(6)=4. 如果对于任意正整数y,当 0 < y < x 时,x 都满足 g(x) > g(y), 则称 x 为反质数.整数 1,2,4,6 等都是反质数. 现在任意给定两个正整数 M, N,其中,M < N <= 20000000,按从小到大输出其中(包括