题解 | #集合与最大公因数#

集合与最大公因数

https://ac.nowcoder.com/acm/problem/236212

每一行输出四个整数要求他们任意两个数的最大公因子为n,那么我们知道连续的三个奇数之间是没有公因子的,但任意两个偶数之间是一定有因子的,那么就转换成了找到在一个最小的区间内找到四个没有公因子的数,首选就是三个连续的奇数,然后再在三个奇数之中选一个偶数,例如1,2,3,5或1,3,4,5,下一个区间则是7,8,9,11,或7,9,10,11就找到了一个循环区间大小为6,每隔6个数能找到四个没有公因子的数,然后再乘以一个k,那么最大公因子就为k了
//通过暴力发现每一次都是在6的倍数减1
//合适的有1 2 3 5
//        1 3 4 5
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;

int main()
{
    int n,k;
    cin>>n>>k;
    cout<<k*(6*n-1)<<endl;
    for(int i = 0; i < n; i ++)
        cout<<k*(6*i+1)<<" "<<k*(6*i+2)<<" "<<k*(6*i+3)<<" "<<k*(6*i+5)<<endl;
}


全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务