欢迎来到c语言的世界,这是一个诞生于1972年的世界。本系列十六题选做题,将带你游历c语言的世界!
你走到了c语言城堡门口,发现大门紧锁,锁是一个四位密码锁。你的导游表示他也没遇到过这种情况,于是你需要自己解开这个密码。作为本系列的第一关,c语言世界肯定不会为难你,大胆闯关吧!
门的旁边写着提示:第一位数是第K小的质数;第二位数是满足行列式 =0的那个x的绝对值的个位数;
第三位数1234和4321的最大公因数;第四位是463和b的最小公倍数的十位数。
其中,K,a,b均由读入给出。
易证明,在规定的数据范围内,x一定是正整数。
输入格式:
第一行输入三个正整数数K,a,b
输出格式:
四个数,中间不需要空格隔开,表示密码。
样例输入:
2 1 2
样例输出:
3012
数据范围:
1≤K≤2,1≤a≤6,1≤b≤462
# include# include int zhi(int k);//得出质数 int matrix(int a);//求行列式的x int bei(int b);//求十位数 int main() { int k, a, b; scanf("%d %d %d", &k, &a, &b); printf("%d%d%d%dn", zhi(k), matrix(a), 1, bei(b)); } int zhi(int k) { int i = 1; int j = 1; int m ; while (i <= k) { j ++;//使j=2,得到第一个质数,与i=1对应 exit: m = 1; while (m <= (int)sqrt(j) ) { if (j % m == 0 && m != 1) { j ++; goto exit;//若j可被 1以外的数整除(非质数),则跳过它,j++ } m ++; }//经过遍历m,无法满足if的,为质数,此时的i就是第几个(本次循环前,上次循环最后i已经++ i ++; } return j; } int matrix(int a) { int x = 0; int g; while ((a * x) != 720) { x ++; }//解方程 g = x % 10; return g; } int bei(int b) { int d = 0; int ori = 0; if (b > 463) { ori = b; } else { ori =463; }//令ori为二者中较大的 while(ori % 463 != 0 || ori % b != 0) { ori ++; }//使ori逐步增大,直至为公倍数 d = (ori / 10) % 10; return d; }



