算法如下:#include#includevoid Sieve(int n){ int p,j,i; int A[n+1],L[n+1]; for(p=2;p<=n;p++) A[p]=p; for(p=2;p<=sqrt(n);p++) { ...
分类:
其他好文 时间:
2014-06-18 18:04:33
阅读次数:
183
就是判断一个数是否是素数,网上很多版本,我觉得都有点问题,今天一个朋友问我这个问题,我才知道,现在我就贴出自己的代码,很有用哦!!
#include
#include
int Prime(unsigned int a)
{
unsigned int i;
int k=0;
if (a==1) k=1;
else for(i=2;i
if(a%...
分类:
编程语言 时间:
2014-06-18 07:30:59
阅读次数:
210
概述
首先了解一下相关概念:RSA算法:1977年由Ron Rivest、Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字。算法基于一个数论:将两个大素数相乘非常容易,但要对这个乘积的结果进行 因式分解却非常困难,因此可以把乘积公开作为公钥,该算法能够抵抗目前已知的所有密码攻击。RSA算法是一种非对称算法,算法需要一对密钥,使用其中一个 加密,需要使用另外一个才能解密。我们在进行RSA加密通讯时,就把公钥放在客户端,私钥留在服务器。
RSA非对称加密算法,可...
分类:
其他好文 时间:
2014-06-18 07:20:35
阅读次数:
406
http://poj.org/problem?id=2478
求欧拉函数的模板。
初涉欧拉函数,先学一学它基本的性质。
1.欧拉函数是求小于n且和n互质(包括1)的正整数的个数。记为φ(n)。
2.欧拉定理:若a与n互质,那么有a^φ(n) ≡ 1(mod n),经常用于求幂的模。
3.若p是一个质数,那么φ(p) = p-1,注意φ(1) = 1。
4.欧拉函数是积性函数:
...
分类:
其他好文 时间:
2014-06-16 19:44:16
阅读次数:
204
这是一个入门的数论题目 , 只需要简单的找素数和快速幂取模
题意:输入一个数 n , 如果这个数是非素数 , 问是不是 这个2~n-1区间的所有数都满足 ?
解法:由于数据量不大 , 可以直接暴力求解
解法1: 暴力求解
#include
#include
#include
using namespace std;
long long prime[65010];
...
分类:
其他好文 时间:
2014-06-15 15:26:51
阅读次数:
215
RSA算法的求解步骤:
给定两个素数:p q
求出 n=p*q
求出 t=(p-1)*(q-1)
再任意取一个数e e需满足:e
再利用公式 d*e%t=1求出d
最终得到:
私钥 {n,d}
公钥 {n,e}...
分类:
其他好文 时间:
2014-06-15 14:20:14
阅读次数:
132
UVA 294 - Divisors
题目链接
题意:求一个区间内,因子最多的数字。
思路:由于区间保证最多1W个数字,因子可以遍历区间,然后利用事先筛出的素数求出质因子,之后因子个数为所有(质因子的个数+1)的积
代码:
#include
#include
#include
using namespace std;
const int N = 35005;
in...
分类:
其他好文 时间:
2014-06-15 10:17:36
阅读次数:
158
简单选择排序时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:836 测试通过:259描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中的简单选择排序算法进行排序,并输出排序过程中每趟及最后结果的相应序列。输入共两...
分类:
其他好文 时间:
2014-06-14 19:04:13
阅读次数:
253
下面的方法都是IEnumerable的扩展方法:Average计算平均值; Min最小元素;Max最大元素;Sum元素总和; Count元素数量;Concat连接两个序列;//Unoin allContains序列是否包含指定元素;Distinct取得序列中的非重复元素;Except获得两个序列的差...
分类:
其他好文 时间:
2014-06-14 15:24:23
阅读次数:
429
/*【程序27】
题目:求100之内的素数*/
packagetest;
importjava.util.Scanner;
publicclasstest
{
publicstaticbooleanprime(intnumber)
{
booleanflag=true;
intmid=(int)Math.sqrt(number);
for(inti=2;i<mid+1;i++)
{
if(number%i==0)
{
flag=f..
分类:
编程语言 时间:
2014-06-13 21:12:22
阅读次数:
443