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つの数は公约数があることができなくて、また大神の指导が必要です)多く言って无益で、コードは歩き始めます!
/*
*                  
*/
#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;
  }