• 近日备考学习二次剩余理论,其中了解到勒让德符号这个相比欧拉定理更加方便判断一个正整数在一个模数下是否为二次剩余;

  • 基于勒让德符号理论的学习,本文旨在通过程序来实现基于勒让德符号的二次剩余判断方法;

  • 本文着重点在于运算过程的展示及功能代码的实现,具体的理论细节还请读者独立了解;

  • 本文使用C语言来实现功能,而且相较于其他简单实现的方式更倾向于了解其中的定理运算过程,难免较为繁琐,如有不足之处大可指出;

目录

手工运算

代码实现

测试结果(读者可手工运算验证)


手工运算


例题/运行实例

代码实现


#include <stdio.h>
#include <math.h>
#include <stdlib.h>typedef unsigned uint;// 判断互素
int gcd(uint a, uint b) {if (b == 0) {return a;}return gcd(b, a % b);
}// 判断素性
int is_prime(uint n) {uint rt = (uint)sqrt(n);for (int i = 2; i < rt; i++) {if (n % i == 0) return 0;}return 1;
}// 欧拉定理(未调用)
int Euler_T(uint a, uint p) {if (gcd(a, p) != 1)return 0;uint ex = (p - 1) / 2;uint eu = (uint)pow(a, ex) % p;if (eu % p == 1) {return 1;} else if (eu % p == p - 1) {return -1;} else {return 0;}
}// 勒让德符号运算
int Legendre(uint a, uint n) {uint p = a, q = n;int f = 1; // 正负表示while (p != 1 && q != 1) {if ((p & 1 == 1) && (q & 1 == 1)) {if ((p % 4 != 1) && (q % 4 != 1)) {f *= -1;}uint t = q;q = p;p = t;p %= q;}while (gcd(p, 2) > 1) {p /= 2;}}if (f == 1) {return 1;} else {return 0;}
}// 主程序测试
int main() {int a, n; scanf("%u%u", &a, &n);if (Legendre(a, n)) {printf("Quadratic Residue!\n");} else {printf("Not Quadratic Residue..\n");}return 0;
}

测试结果(读者可手工运算验证)


测试结果

勒让德符号判断二次剩余-C语言相关推荐

  1. c语言3%10等于多少,[编程入门]数字的处理与判断-题解(C语言代码)

    # 1009题-[编程入门]数字的处理与判断-题解(C语言描述) 本题解的最终解释权归本人所有,主要用于本班上同学更好的掌握本题的解题方法,同时更好的理解和掌握方法. ------------ ### ...

  2. c语言判断非法字符题目,C语言考试题库之判断题-c语言考试判断题

    <C语言考试题库之判断题-c语言考试判断题>由会员分享,可在线阅读,更多相关<C语言考试题库之判断题-c语言考试判断题(7页珍藏版)>请在人人文库网上搜索. 1.三.判断题(1 ...

  3. python怎么判断是http还是https_怎么判断孩子是语言发育迟缓还是自闭症?

    宝贝到了该说话的年龄却迟迟不见开口,好急人!别人家的孩子都会背诵古诗词了,但他却连"爸爸""妈妈"都说不利索.语言发育迟缓我还能接受,但如果是自闭症...... ...

  4. 回文数判断 : C语言

    回文数判断 : C语言 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 题目解读: 该题将整数转换为字符串再进行判断较为简单(需要开辟新的内存,存在优化的地方 ...

  5. php判断访客语言,php实现获取及设置用户访问页面语言类

    本文实例讲述了php实现获取及设置用户访问页面语言类,分享给大家供大家参考.具体分析如下: 该实例User Language Class 获取/设置用户访问的页面语言,如果用户没有设置访问语言,则读取 ...

  6. java 语言如何判断素数_C语言实验之判断素数(循环结构java)方法讲解

    C语言实验之判断素数(循环结构java)方法讲解 Problem Description 从键盘上输入任意一个正整数,然后判断该数是否为素数. 如果是素数则输出"This is a prim ...

  7. c语言判断整数_C语言技能|(草稿,不断完善中...)

    2020年春考C语言有2个题型:填空+程序 程序填空涉及: 一.头文件的引用 1.必有#include (注意:在devC++ 5.10中#include "stdio.h"也是正 ...

  8. c语言判断闰年_C语言1博客作业06 - D丶千思

    1.作业头 实验作业 输入在一行中按照格式"yyyy/mm/dd"(即"年/月/日")给出日期.注意:闰年的判别条件是该年年份能被4整除但不能被100整除.或者 ...

  9. C语言里if语句变量作为判断条件,C语言教学(九-上)if else判断语句

    原标题:C语言教学(九-上)if else判断语句 今天讲if else判断语句,简单理解就是进行条件判断,如果条件达到则执行if 里或else里的语句.先来看if. if的写法和for差不多,就是不 ...

最新文章

  1. Django入门之开发环境搭建1.1
  2. 无需代码即可看视频造游戏!英伟达再现神操作!
  3. 数据结构与算法笔记(四)—— 栈
  4. fedora 35 安装各种桌面环境命令整理
  5. Dump文件:线程dump和堆dump
  6. F - Colorful Tree(LCA,树上差分,离线处理)
  7. 小猿圈web前端之网站性能优化方案
  8. 集合框架-ArrayList源码学习
  9. 盈建科弹性板6计算_盈建科(300935):国内建筑结构设计软件行业的领先企业...
  10. pickerView的简单使用
  11. 卧式单面多轴钻孔组合机床动力滑台液压系统的设计
  12. pywinauto实现微信消息自动发送
  13. 百度地图详解使用,显示自己的当前位置BaiduMap
  14. 陈艾盐:《春燕》百集访谈节目第五十九集
  15. 一位医疗 AI 创业者的自述:这个行业到底需要什么样的产品?...
  16. redis配置RDB、AOF以及RDB、AOF同时开启
  17. 2019年暑假 纪中培训总结
  18. 【偶像大师 白金星光】的【Variable Tone】技术大公开!偶像从哪里看都那么可爱,VA小组谈制作方针...
  19. python json文件对比方法
  20. NPOI使用说明---设置字体

热门文章

  1. 学习OpenCV(1)概述
  2. VUE强制渲染,强制更新
  3. 音视频开发系列--H264编解码总结
  4. 凛冬将至,程序员到底何去何从
  5. Redis常用命令入门4:集合类型
  6. SEOER必备的经典外链知识
  7. 可达性分析算法-针对的对象
  8. outlook邮件路径更改_如何在Outlook中更改电子邮件的“答复”地址
  9. 【板绘手绘线稿素材资料】从素描到板绘,超全的人物嘴巴画法!
  10. ORacle空间数据