请问一个算法
请教一个算法!
求一个最小正整数,这个正整数被任意n(2<=n<=10)除都余(n-1),如被2除余1,被3除余2…………
设计一种算法,不允许枚举与除2,除3……除10有关的命令,求出这个数!
------解决方案--------------------
pow(2,3)*pow(3,2)*pow(5,1)*pow(7,1) - 1
------解决方案--------------------
这个是除数和余数关系的题目,写公式再推导就可以看出规律啦
------解决方案--------------------
1楼方法很牛,
感觉原理应该和在下一样:求2-10的最小公倍数-1
------解决方案--------------------
忘记贴代码:
求一个最小正整数,这个正整数被任意n(2<=n<=10)除都余(n-1),如被2除余1,被3除余2…………
设计一种算法,不允许枚举与除2,除3……除10有关的命令,求出这个数!
------解决方案--------------------
pow(2,3)*pow(3,2)*pow(5,1)*pow(7,1) - 1
------解决方案--------------------
这个是除数和余数关系的题目,写公式再推导就可以看出规律啦
------解决方案--------------------
1楼方法很牛,
感觉原理应该和在下一样:求2-10的最小公倍数-1
------解决方案--------------------
忘记贴代码:
- C/C++ code
#include<stdio.h> /*最大公约数*/ int gcd(int,int); int main() { register int i; int n=2*2*2*3*3*5*7-1; int n1=1; for(i=2;i<11;i++) n1=n1*i/gcd(n1,i); n1--; for(i=2;i<11;i++) printf("%d\t%d\t%d\n",i,n%i,n1%i); printf("---------------------------\nn=%d,n1=%d\n",n,n1); return(0); } int gcd(int m,int n) { int r; if(m<n) m^=n^=m^=n; do { r=m%n; m=n; n=r; }while(r); return(m); }