博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求最大公约数和小于n的所有质数
阅读量:6371 次
发布时间:2019-06-23

本文共 1918 字,大约阅读时间需要 6 分钟。

//algorithm.henum SWAP_TYPE{MEMORY, COMPLEX};struct SIntArray{    int *pData;    int  num;    SIntArray():pData(NULL),num(0){}    void Clear(){delete pData; pData = NULL; num = 0;}};void      Wswap(int &m, int &n, SWAP_TYPE name = MEMORY);int       Wgcd(int m, int n);SIntArray Wprime(int m);//algorithm.cppvoid Wswap(int &m, int &n, SWAP_TYPE name)//交换{    switch(name)    {    case MEMORY:        m = m + n;        n = m - n;        m = m - n;        break;    case COMPLEX:        int temp = m;        m = n;        n = temp;        break;    }}int GCD(int m, int n){    if( n == 0)    {        return m;    }    else    {        int r = m % n;        GCD(n, r);    }}int Wgcd(int m, int n)//寻找最大公约数{    if(m > n)    {        Wswap(m, n);//make sure m > n        }    int result = GCD(m, n);    return result;}SIntArray Wprime(int m)//找所有小于m的质数{    SIntArray result;    if(m <= 0)    {        return result;    }    int *number = new int [m+1];    for(int i = 0; i <= m; i++)    {        number[i] = i;    }    int limit = sqrt((float)m);    for(int j = 2; j <= limit; j++)    {        if(number[j] != 0)        {            int temp = j*j;// j 2*j   (j-1)*j    1:(j-1) have been processed, so only process j ... n/j             while(temp <= m) // eliminate            {                number[temp] = 0;                temp = temp + j;                            }        }    }    int count = 0;    for(int j = 2; j <= m; j++)    {        if(number[j])        {            number[count] = number[j];            count++;        }    }    int *out = new int [count];    memcpy(out, number, count*sizeof(int));    delete number;    number = NULL;    result.pData = out;    result.num = count;    return result;} //main.cppint _tmain(int argc, _TCHAR* argv[]){/*  Wgcd    最大公约数    int m,n;    cout<<"input two number:"<
>m>>n; cout<<"greatest common divisor:"<
>m; cout<<"prime number:"<

转载地址:http://tguqa.baihongyu.com/

你可能感兴趣的文章
常用排序算法:基数排序
查看>>
类的友元关系
查看>>
DataGridView风格设置
查看>>
程序实现DataGrid过滤设置
查看>>
C#中的?操作符
查看>>
JavaScript基于对象(面向对象)<一>类和对象
查看>>
bootstrap-table填坑之旅<一>认识bootstrap-table
查看>>
部署模式 - 每个容器一个服务实例
查看>>
学术诚信与职业道德
查看>>
并发异常,事务隔离级别,锁
查看>>
linux复习之进程基础知识
查看>>
你不一定懂的cpu显示信息
查看>>
hdu 1717 小数化分数2
查看>>
asp.net下载文件方法
查看>>
HLSL学习笔记(一):基础
查看>>
vueJS+ES6开发移动端APP实战项目笔记
查看>>
什么阻碍了强人工智能的发展
查看>>
Linux录屏软件
查看>>
MS Sql Server 数据库或表修复(Log日志文件损坏的修复方法)
查看>>
samba服务配置
查看>>