永发信息网

用C语言编写:输入两个数,输出其所有的公因子。

答案:2  悬赏:10  手机版
解决时间 2021-03-26 03:20
用C语言编写:输入两个数,输出其所有的公因子。
最佳答案

#include
int main()
{int a,b,c,i;
scanf("%d%d",&a,&b);
c=afor(i=1;i<=c;i++)
  if(a%i==0&&b%i==0)
    printf("%d ",i);
return 0;
}
全部回答
#include
main()
{
    int n, i;
    scanf("%d", &n);
    for(i = 2; n != 1; i++)
    {
        while(n % i == 0)
        {
            n /= i;
            printf("%d ", i);
        }
    }
}
追问不对耶,我说的是输入两个数,你这才1个。追答#include
main()
{
    int n, i, m;
    scanf("%d %d", &n, &m);
    n *= m;
    for(i = 2; n != 1; i++)
    {
        while(n % i == 0)
        {
            n /= i;
            printf("%d ", i);
        }
    }
}追问while里的程序是不是有问题? n=n/i,然后就输出i?追答没问题啊,一个数可能存在多个相同的因子吧。比如8:
8%2==0,8/2=4,输出2
4%2==0,4/2=2,输出2
2%2==0,2/2=1,输出2
1%2!=0,跳出while()循环。
n==1了,跳出for()循环。追问懂了,谢谢。不过我求公因子,假设输入5和6,公因子应该为1,按程序,输出是30的所有因子,是吗?追答应该是先求最大公约数,然后把最大公约数分解了。#include
int gcd(int m, int n)
{
int r = m % n;
while(r != 0)
{
m = n;
n = r;
r = m % n;
}
}
main()
{
int n, i, m;
scanf("%d %d", &n, &m);
n = gcd(m, n);
for(i = 2; n != 1; i++)
{
while(n % i == 0)
{
n /= i;
printf("%d ", i);
}
}
printf("%d", n);
}最后一个输出的始终为1,可以直接在n=gcd(m,n);后面改为直接写printf("1");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女孩头顶生三个转代表什么意思
达州西外是不是有个有个恒大的盘,现在还有房
请问怎么有这种人男人,老是喜欢去别人家里搞
现在做九块九店好干吗 ?在县城做,这做这个
洛阳想学微整形哪家好
便民市场里干点啥……………~~
我左边咽喉总是反反复复轻微疼痛,左边耳朵里
君临之境电脑版手游模拟器哪儿有?
实体店的未来,真的是网购搞垮了实体店铺吗
两个人抱在一起打一成语
拿了C1驾驶证要多久可以增驾,要怎么样一直考
最终幻想14 这套比基尼获得方式
a meaningfulweekend初中英语作文
团风有哪些好玩的地方?
农业机械都有什么?都用到哪些机械知识比如液
推荐资讯
信用卡透支170000每月还1700行吗
天火同人变火山旅象征着什么?
陕西安康移动装宽带和wifi路由器多少钱
女朋友在我家洗澡, 我就趁着跑进卫生间里,
远字和洪字要怎样拼成语
白金上镶嵌的锆石跟普通首饰上的锆石有什么区
26岁女性体检项目应该检哪些?
六年级的奥数题与答案100道
The boy was observed basketball at eight
关于“聪明出于勤奋,天才在于积累”的事例!
华硕笔记本zenbook u3000怎么进U盘pe启动 开
我妈叫我把裤子脱了趴床上是因为什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?