赞
踩
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
有一个不超过 10^17 的正整数 n,知道这个数除以 2 至 49 后的余数如下表所示,求这个正整数最小是多少。
思路:
a mod 间隔 n
2 1 2 3、5、7、9、11、13、15、17、19、21、23···
3 2 6 5、8、11、14、17、20、23、26、29、32···
4 1 12 5、9、13、17、21、25、29、33、37、41···
5 4 4 9、14、19、24、29、34、39、44、49、53···
```
由上表可得出规律,间隔为x个a的公倍数。
在n中找到既满足n%a=mod又满足n%(a-1)=mod的数。
- import java.util.Scanner;
-
- public class Main {
- public static void main(String args[]) {
- long lcm=2,ans=3;
- long[] a=new long[] {0,0,1,2,1,4,5,4,1,2,9,0,5,10,11,14,9,0,11,18,9,11,11,15,17,9,23,20,25,16,29,27,25,11,17,4,29,22,37,23,9,1,11,11,33,29,15,5,41,46};
- for(int i=3;i<=49;i++) {
- while(ans%i!=a[i]) {
- ans+=lcm;
- }
- lcm=lcm(i,lcm);
- }
- System.out.println(ans);
- }
- public static long gcd(long a,long b) {
- if(b==0) {
- return a;
- }
- else {
- return gcd(b,a%b);
- }
- }
- public static long lcm(long a,long b) {
- return a*(b/gcd(a,b));
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。