本文目錄一覽:
C語言,互質數問題,用指針。用帶填充原程序做
#includestdio.h
#includestring.h
#includemalloc.h
#includeconio.h
#includemath.h
#include stdlib.h
#include time.h
#include stdlib.h
void is_huzhishu(int x,int y, int* jieguo)
{
int temp;
while( y != 0)
{
temp = y;
y = x % y;
x = temp;
}
if(x == 1)
{
*jieguo = 1;
}
else
{
*jieguo = 0;
}
}
int main(void)
{
int x,y,jieguo;
printf(“請輸入兩個正整數,以英文逗號分隔\n”);
scanf(“%d,%d”, x, y);
is_huzhishu(x, y, jieguo);
if(jieguo)
{
printf(“YES\n\n”);
}
else
{
printf(“NO\n\n”);
}
return 0;
}
判斷兩個數a,b是否為互質數的程序,用C語言編寫?
兩個數互質,就是說兩個數的沒有公共因子,即最大公約數是1
程序如下:
#include stdio.h
int GCD(int x,int y)//最大公約數函數,歐幾里德演算法
{
int a,b,c;
if(xy)
{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++下調試通過,最大公約數計算使用的是歐幾里德演算法(數論基礎知識),看過就明白了。
求1到100內兩個數互質的概率的c語言程序
互質和質數沒有聯繫吧,互質就是最大公約數為1,比如4 9 互質
#include iostream
#include stdio.h
#include stdlib.h
using namespace std;
int gcd(int a,int b)
{
if(b==0)return a;
else return gcd(b,a%b);
}
int main()
{
int i,j,s;
double p;
s=0;
for(i=1; i=100; i++)
{
for(j=i+1; j=100; j++)
{
if(gcd(j,i)==1)s++;
}
}
printf(“%d\n”,s);
p=double(s)/(100*99/2);
printf(“%lf\n”,p);
return 0;
}
希望採納么么噠~(≧▽≦)/~
C語言 互質數問題(最好有點解釋)
/*
21 17
是
2 4
不是
9 3
不是
13 39
不是
q
Press any key to continue
*/
#include stdio.h
int MaxFactor(int m,int n) { // 最大公約數
int t;
if(n m) { t = n;n = m;m = t; }
for(t = m;t 0;t–) {
if(m % t == 0 n % t == 0)
return t;
}
return 1; // 永遠得不到執行。
}
void is_huzhishu(int x,int y,int *res) {
if(1 == MaxFactor(x,y)) *res = 1;
else *res = 0;
}
int main() {
int m,n,res;
while(scanf(“%d%d”,m,n) == 2) {
is_huzhishu(m,n,res);
if(res) printf(“是\n”);
else printf(“不是\n”);
}
return 0;
}
原創文章,作者:EHNAM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/325323.html