本文目录一览:
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;
}