在两个数字之间找到Prime gcd

时间:2015-11-07 16:23:11

标签: c greatest-common-divisor

对于c的学生课程, 我需要找到两个整数的主要最大公约数(gcd)。 如果没有答案,则输出应为1。 您只能使用if语句,scanf,循环(无外部函数)。

输入和输出的例子:

(20,20)--->5
(21,20)--->1
(22,20)--->2
(29,29)--->29

有人可以帮我这个吗? 以下是我到目前为止的情况:

#include <stdio.h>
int main()
{
    int num1, num2, i, hcf;
    printf("Enter two integers: ");
    scanf("%d %d", &num1, &num2);
    for(i=1; i<=num1 || i<=num2; ++i)
    {
        if(num1%i==0 && num2%i==0)   /* Checking whether i is a factor of both number */
            hcf=i;
    }
    printf("gcd of %d and %d is %d", num1, num2, hcf);
    return 0;
}

有很多关于如何找到gcd的例子,但没有找到我发现的素数gcd。

2 个答案:

答案 0 :(得分:0)

修复样本

$stampElem = $('.filter-box');
var $Grid = $('.list-container').isotope({
    itemSelector: '.content-box',
    layoutMode: 'masonry',
    stamp: $stampElem,
    masonry: {
        // columnWidth: ".filter-box"
    }
 });

 $(' a.btn').on( 'click', function() {
 $('.filter-box').toggleClass('gigante');
 // trigger layout after item size changes
 $Grid.isotope('layout');
 });
 $('.list-container').on( 'click', '.filter-link', function(e) {
    e.preventDefault();
    $Grid.isotope( 'stamp', $stampElem );
    var filterValue = $(this).attr('data-filter');
    $Grid.isotope({ filter: filterValue });
 });
 $Grid.isotope({ filter: '.start-box-filters' });

答案 1 :(得分:0)

你可以用直截了当的方式做到:

第一步:生成一个小于最大int值的所有素数的列表。

第二步:使用该列表和试验分区查找每个给定整数的素因子。保留每个的主要因素列表。

第三步:浏览一个因素列表,并检查每个因素是否在另一个列表中。如果只有一个,这是你最大的共同主要除数。如果两个列表中都有多个,则GCD不是素数。