① 互質數的判斷方法
看這兩個數除了1以為有沒有其他公因數,如果有就不是互質數,如果沒有這兩個數就是互質數關系。
② C語言,互質數問題,用指針。用帶填充原程序做
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<stdlib.h>
voidis_hushu(intx,inty,int*jieguo)
{
inttemp;
while(y!=0)
{
temp=y;
y=x%y;
x=temp;
}
if(x==1)
{
*jieguo=1;
}
else
{
*jieguo=0;
}
}
intmain(void)
{
intx,y,jieguo;
printf("請輸入兩個正整數,以英文逗號分隔 ");
scanf("%d,%d",&x,&y);
is_hushu(x,y,&jieguo);
if(jieguo)
{
printf("YES ");
}
else
{
printf("NO ");
}
return0;
}
③ 編程實現,輸入兩個整數,判斷兩個數是否為互質數
樓上的 互質就是兩個數公約數為1
#include<stdio.h>
main()
{ int a,b,temp;
printf("a=");
scanf("%d",&a);
printf("b=");
scanf("%d",&b);
while(b!=0){
temp=b;
b=a%b;
a=temp;
}
if(a==1){
printf("YES");
}else{
printf("no");
}
}
④ C語言 互質數問題(最好有點解釋)
/*
21 17
是
2 4
不是
9 3
不是
13 39
不是
q
Press any key to continue
*/
#include<stdio.h>
intMaxFactor(intm,intn){//最大公約數
intt;
if(n<m){t=n;n=m;m=t;}
for(t=m;t>0;t--){
if(m%t==0&&n%t==0)
returnt;
}
return1;//永遠得不到執行。
}
voidis_hushu(intx,inty,int*res){
if(1==MaxFactor(x,y))*res=1;
else*res=0;
}
intmain(){
intm,n,res;
while(scanf("%d%d",&m,&n)==2){
is_hushu(m,n,&res);
if(res)printf("是 ");
elseprintf("不是 ");
}
return0;
}
⑤ c++如何判斷兩個數互質
互質的定義
:
2個數的最大公約數為1
建議
使用
輾轉相除法
計算最大公約數,如果最大公約數是1
,則兩個數互質。
如果不會輾轉相除法,建議網路查找。
⑥ 怎樣判斷互質數,6種方法
判斷互質數的方法就是只有一和本身兩個除數就是質數。
⑦ 判斷兩個數a,b是否為互質數的程序,用C語言編寫
兩個數互質,就是說兩個數的沒有公共因子,即最大公約數是1
程序如下:
#include <stdio.h>
int GCD(int x,int y)//最大公約數函數,歐幾里德演算法
{
int a,b,c;
if(x>y)
{a=x,b=y;}
else
{a=y,b=x;}
while ((a%b)!=0)
{
c=a%b;
a=b;
b=c;
}
return b;
}
int main()
{
int m,n;
printf("please input two positive numbers:");
scanf("%d%d",&m,&n);
if(GCD(m,n)>1)
printf("兩個數不是互質的。\n");
else
printf("兩個數是互質的。\n");
}
輸入示例:100 3
輸出:兩個數是互質的。
程序在DEV C++下調試通過,最大公約數計算使用的是歐幾里德演算法(數論基礎知識),看過就明白了。
⑧ 怎麼判斷互質數
怎樣判斷互質數,6種方法
最佳答案由提問者推薦
匿名用戶
根據互質數的定義,可總結出一些規律,利用這些規律能迅速判斷一組數是否互質。
(1)兩個不相同的質數一定是互質數。如:7和11、17和31是互質數。
(2)兩個連續的自然數一定是互質數。如:4和5、13和14是互質數。
(3)相鄰的兩個奇數一定是互質數。如:5和7、75和77是互質數。
(4)1和其他所有的自然數一定是互質數。如:1和4、1和13是互質數。
(5)兩個數中的較大一個是質數,這兩個數一定是互質數。如:3和19、16和97是互質數。
(6)兩個數中的較小一個是質數,而較大數是合數且不是較小數的倍數,這兩個數一定是互質數。如:2和15、7和54是互質數。
(7)較大數比較小數的2倍多1或少1,這兩個數一定是互質數。如:13和27、13和25是互質數。
⑨ 如何用「c++函數」判斷倆數是否互質
// 只有1為公約數的兩個正整數,兩個整數才會互質
// 也就是說兩個整數的最大公約數為1,即可判斷兩個正整數互質
bool isrp(int a, int b){
if(a <=0 || b<=0 || a==b){ // 互質整數不能小於或等於0
return false;
}else if(a==1 || b==1){ // 兩個正整數中,只有其中一個數值為1,兩個正整數為互質數
return true;
}else{
// 求出兩個正整數的最大公約數
while(1){
int t = a%b;
if(t == 0){
break;
}else{
a = b;
b = t;
}
}
if( b > 1){ // 如果最大公約數大於1,表示兩個正整數不互質
return false;
}else{ // 如果最大公約數等於1,表示兩個正整數互質
return true;
}
}
}
⑩ 怎樣判斷互質數,6種方法
根據互質數的定義,可總結出一些規律,利用這些規律能迅速判斷一組數是否互質。
(1)兩個不相同的質數一定是互質數。如:7和11、17和31是互質數。
(2)兩個連續的自然數一定是互質數。如:4和5、13和14是互質數。
(3)相鄰的兩個奇數一定是互質數。如:5和7、75和77是互質數。
(4)1和其他所有的自然數一定是互質數。如:1和4、1和13是互質數。
(5)兩個數中的較大一個是質數,這兩個數一定是互質數。如:3和19、16和97是互質數。
(6)兩個數中的較小一個是質數,而較大數是合數且不是較小數的倍數,這兩個數一定是互質數。如:2和15、7和54是互質數。
(7)較大數比較小數的2倍多1或少1,這兩個數一定是互質數。如:13和27、13和25是互質數。