0より大きい正の整数nを考えて、それをそれぞれ3つの正の整数で割って残数を得て、これらの数と残数をコンピュータに教えて、この数字を推測します
16016 ワード
まずこの問題を分析してみると,この問題は除数3,5,7から変換され,主に3,5,7の係数70,21,15を強化するための由来でもある.係数がどのように来たのかを強調しましょう.3,5,7を例にとると,さらにこの問題に延びる.推測する数字をXとする.3,5,7を除いて、コンピュータにこの数を3,5,7で割った残りの数a,b,cがあなたの心の中の数字を与えることができることを教えます.X%3==a; (5,7の係数が3の倍数であると同時にaの係数が3に対して1に等しい)S=u+3 V+3 W;X%b; (3,7の係数が3の倍数であると同時にaの係数が5に対して1に等しい)X%7 c;(3,5の係数が3の倍数であると同時にaの係数が7に対して余剰を求めて1に等しい)
3,5,7を3つの整数で置き換えるとよい.同時に、3つの整数にどのような制限があるかに注意する必要があります.多くのテストを通じて3つの数字を発見して、仮に心の中の数字は10で、3つの数は2で、5で、7余りの数は0で、0で、3しかし80はこの要求を満たして曖昧さを生んで、別の条件の制限が必要で、私は人材が浅くて、この抜け穴は先に皆さんに借りて、後日大成してから、更に補充します.许して~(ここで个人の见方を出して、3つの数は公约数があることができなくて、また大神の指导が必要です)多く言って无益で、コードは歩き始めます!
3,5,7を3つの整数で置き換えるとよい.同時に、3つの整数にどのような制限があるかに注意する必要があります.多くのテストを通じて3つの数字を発見して、仮に心の中の数字は10で、3つの数は2で、5で、7余りの数は0で、0で、3しかし80はこの要求を満たして曖昧さを生んで、別の条件の制限が必要で、私は人材が浅くて、この抜け穴は先に皆さんに借りて、後日大成してから、更に補充します.许して~(ここで个人の见方を出して、3つの数は公约数があることができなくて、また大神の指导が必要です)多く言って无益で、コードは歩き始めます!
/*
*
*/
#include
using namespace std;
int gbs(int a,int b,int c); //
int f_xs(int a,int b,int c); // 3,5,7 70,21,15
int max(int a,int b,int c); //
int f_pd(int a,int b); //
int main()
{
int a,b,c,n,y1,y2,y3; // a,b,c n y1 y2 y3
while(1){
cout<<" :"<<endl;
cin>>a>>b>>c;
cout<<" :"<<endl;
cin>>y1>>y2>>y3;
if(f_pd(a,b)&&f_pd(b,c)&&f_pd(a,c))
{
break;
}
else
{
cout<<" , "<<endl;
}
}
int x,y,z;
x=f_xs(a,b,c);
y=f_xs(b,a,c);
z=f_xs(c,a,b);
cout<<x<<" "<<y<<" "<<z<<endl;
n=x*y1+y*y2+z*y3;
cout<<gbs(a,b,c)<<endl;
while(n>100)
{
n=n-gbs(a,b,c);
}
cout<<" :"<<n<<endl;
return 0;
}
//
int gbs(int a,int b,int c)
{
int x=max(a,b,c);
int k,i=1;
while(1)
{
k=x*i;
if(k%a==0&&k%b==0&&k%c==0)
break;
i++;
}
return k;
}
//
int f_xs(int a,int b,int c)
{
int i;
for( i=0;i<1000;i++)
{
int temp=0;
if(i%(b*c)==0&&i%a==1)
temp=1;
if(temp==1)
{
break;
}
}
return i;
}
//
int max(int a,int b,int c)
{
int x,temp;
x=max(a,b);
if(c>x){
return c;
}
return x;
}
// a,b,c
int f_pd(int a,int b)
{
int m;
m=a%b;
while(m!=0)
{
a=b;
b=m;
m=a%b;
}
if(b==1){
return 1;
}
return 0;
}