互质(互素)

互质自然数

两个非零自然数的最大公约数是1——>两个数互质

1和任何非零自然数都是互质的。

互质整数

互质是公约数只有1的两个整数,叫做互质整数。公约数只有1的两个自然数,叫做互质自然数,后者是前者的特殊情形。

1和-1与所有整数互素,而且它们是唯一与0互素的整数。

互质判断方法:

两个数互质的情况:

性质一:两个不同的质数是互质的。
性质二:一个质数,另一个不为它的倍数,这两个数为互质数。(较大数是质数的两个数是互质数)
性质三:相邻的两个自然数是互质数。
性质四:相邻的两个奇数是互质数。
性质五:最大公约数是1,两个数互质。

三个或三个以上自然数互质有两种不同的情况:

一种是这些成互质数的自然数是两两互质的。如2、3、5。
另一种不是两两互质的。如6、8、9。

编程判断互质

常使用性质五:判断两个数的最大公约数是否是1
c语言:

#include <stdio.h>
#include <stdlib.h>
void exchange(int &a,int &b){//为辗转相除初始化 
    if(a>b){
        int c = a;
        b = c;
        a = b;
    }
}
int gcd(int a,int b){//辗转相除求最大公约数 
    if(b==0){
        return a;
    }else{
        return gcd(b,a%b); 
    }
} 
int main(){
    int a,b;
    scanf("%d %d",&a,&b);
    exchange(a,b);
    if(gcd(a,b)==1){//最大公约数是1,互质 
        printf("YES,互质!"); 
    }else{
        printf("NO,不互质!");
    }
    system("pause");
    return 0;
}
  • 11
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,根据您的要求,我可以给您提供一个大致的程序框架,您可以在此基础上进行修改和完善。以下是程序框架: ```c #include <stdio.h> #include <stdlib.h> // 定义学生结构体 typedef struct { int id; // 学生编号 float score; // 学生成绩 } Student; // 定义链表节点结构体 typedef struct Node { Student data; // 学生信息 struct Node* next; // 指向下一个节点的指针 } Node; // 定义链表指针类型 typedef Node* List; // 初始化链表 void initList(List* plist); // 在链表末尾添加节点 void addNode(List* plist, Student stu); // 查询某个学生的成绩是否为素数 void prime(List list, int id); // 查询某两个学生的成绩是否互质/互素 void coprime(List list, int id1, int id2); // 根据 GPA 对学生成绩进行考情分析 void analyzeGPA(List list); int main() { List list; initList(&list); int choice; do { printf("1. 添加学生信息\n"); printf("2. 查询学生成绩是否为素数\n"); printf("3. 查询学生成绩是否互质/互素\n"); printf("4. 根据 GPA 进行考情分析\n"); printf("5. 退出程序\n"); printf("请选择操作:"); scanf("%d", &choice); switch (choice) { case 1: // 添加学生信息 break; case 2: // 查询学生成绩是否为素数 break; case 3: // 查询学生成绩是否互质/互素 break; case 4: // 根据 GPA 进行考情分析 break; case 5: // 退出程序 break; default: printf("输入有误,请重新选择!\n"); break; } } while (choice != 5); return 0; } void initList(List* plist) { // 初始化链表 } void addNode(List* plist, Student stu) { // 在链表末尾添加节点 } void prime(List list, int id) { // 查询某个学生的成绩是否为素数 } void coprime(List list, int id1, int id2) { // 查询某两个学生的成绩是否互质/互素 } void analyzeGPA(List list) { // 根据 GPA 对学生成绩进行考情分析 } ``` 您可以根据需求进行添加、修改和完善。希望能对您有所帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值