• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-31
  • 语言: C/C++
  • 标签: C语言  

资源简介

很小的代码,3百多行,用C语言写的,还是比较适合学习的

资源截图

代码片段和文件信息

#include
#include
#include
#include

#define MAX 500 //运算中的最高可能位数
#define NUMP 2 //已提供的素数个数
#define NUMG 50 //随机数g的位数
#define swap(xy) x^=y^=x^=y
char p_set[NUMP][110]=
{
    {“3383489120380959248493525538580021146558530486980451874557556432721233835930146323754645777760514961“}
    {“3383489120380959248493525538580021146558530486980451874557556432721233835930146323754645777760514963“}
};


int get_n(char*a)
{
    int i=MAX-1;
    while(i>=0&&!a[i])i--;
    return i+1;
}
int get_mul(char*achar*b)
{
    int nanbijn;
    char c[MAX]d[MAX];
    for(i=0; i    na=get_n(c);
    nb=get_n(d);
    for(i=0; i        {
            a[i+j]+=d[i]*c[j];
            if(a[i+j]>9)a[i+1+j]+=a[i+j]/10a[i+j]%=10;
        }
    for(i=0; i    {
        if(a[i])n=i+1;
        if(a[i]>9)a[i+1]+=a[i]/10a[i]%=10;
    }
    return n;
}
int get_mod(char*achar*b)
{
    int nanbiuf=0n;
    na=get_n(a);
    nb=get_n(b);
    u=na-nb;
    if(u<0)return 0;
    while(u+1)
    {
        for(i=na-1f=0; i>=u; i--)
        {
            if(a[i]>b[i-u])
            {
                f=1;
                break;
            }
            if(a[i]            {
                f=-1;
                break;
            }
        }
        if(!f)
        {
            for(i=na-1; i>=u; i--)a[i]=0;
            u-=nb;
            if(u<0)break;
            continue;
        }
        if(f==-1)u--;
        if(f==1)
        {
            for(i=u; i            {
                a[i]-=b[i-u];
                if(a[i]<0)a[i+1]--a[i]+=10;
            }
        }
    }
    for(i=0; i
    return n;
}
void reverse(char*a)
{
    int in;
    n=get_n(a);
    for(i=0; i}
void get_a(char*a)
{
    int i=0;
    while(a[i])a[i++]-=‘0‘;
}
void get_g(char*a)
{
    int irj=0;;
    srand(time(0));
    while(1)
    {
        r=rand()%10000;
        for(i=0; i<4; i++)
        {

评论

共有 条评论