<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/kazm_m/">
    <title>kazm_m の部屋</title>
    <link>http://w.atwiki.jp/kazm_m/</link>
    <atom:link href="https://w.atwiki.jp/kazm_m/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>kazm_m の部屋</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-02-16T23:34:02+09:00</dc:date>
    <utime>1234794842</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/kazm_m/pages/3.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/kazm_m/pages/1.html</link>
    <description>
      &amp;size(40){ トップページ}
----
 




































/    </description>
    <dc:date>2009-02-16T23:34:02+09:00</dc:date>
    <utime>1234794842</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/kazm_m/pages/2.html</link>
    <description>
      *&amp;size(32){メニュー}

[[トップページ]]
[[File置き場]]
[[memo]]
[[Project Euler&gt;ProjectEuler]]    </description>
    <dc:date>2009-02-16T23:32:15+09:00</dc:date>
    <utime>1234794735</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/24.html">
    <title>memo</title>
    <link>https://w.atwiki.jp/kazm_m/pages/24.html</link>
    <description>
          </description>
    <dc:date>2009-01-22T08:38:04+09:00</dc:date>
    <utime>1232581084</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/19.html">
    <title>File置き場</title>
    <link>https://w.atwiki.jp/kazm_m/pages/19.html</link>
    <description>
          </description>
    <dc:date>2009-01-20T23:40:19+09:00</dc:date>
    <utime>1232462419</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/22.html">
    <title>ProjectEuler 41~</title>
    <link>https://w.atwiki.jp/kazm_m/pages/22.html</link>
    <description>
      -------------------
リンク
[[ProjectEuler ホームページ&gt;http://projecteuler.net/index.php?section=problems]]
[[ProjectEuler Pukiwiki&gt;http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler]]
-------------------
もうちょっとスマートなプログラムを書きたいところだが･･･
-[[問題１～４０&gt;ProjectEuler 1~]]
#contents
-----
*  &amp;color(,#EE7700){問題４１}
 #include&lt;stdio.h&gt;
 int sosu(long long n){
 	int i;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0)return 0;
 	}
 	return 1;
 }
 int keta(long long n){
 	int re=1;
 	while((n/=10)&gt;=1)re++;
 	return re;
 }
 int check(long long n){
 	int i,a[10],ke;
 	if(sosu(n)==0)return 0;
 	ke=keta(n);
 	for(i=0;i&lt;10;i++)a[i]=0;
 	while(n&gt;=1){
 		a[n%10]++;
 		n/=10;
 	}
 	for(i=1;i&lt;=ke;i++){
 		if(a[i]!=1)return 0;
 	}
 	return 1;
 }
 int main(){
 	long long i;
 	for(i=1;;i+=2){
 		if(check(i)==1){
 			printf(&quot;%lld\n&quot;,i);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４２}
 #include&lt;stdio.h&gt;
 #include&lt;stdlib.h&gt;
 #include&lt;math.h&gt;
 int main(){
 	int Ans=0,now=0,tmp;
 	char ch;
 	FILE*fp;
 	fp=fopen(&quot;words.txt&quot;,&quot;r&quot;);
 	if(fp==NULL)return 0;
 	
 	while(EOF!=fscanf(fp,&quot;%c&quot;,&amp;ch)){
 		if(ch==&#039;&quot;&#039;||ch==&#039;,&#039;){
 			if(now==0)continue;
 			tmp=sqrt(now*2);
 			if(tmp*(tmp+1)==now*2)Ans++;
 			now=0;
 			puts(&quot;&quot;);
 		}else{
 			printf(&quot;%c&quot;,ch);
 			now+=(ch-&#039;A&#039;+1);
 		}
 	}
 	printf(&quot;Ans=%d\n&quot;,Ans);
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４３}
 #include&lt;stdio.h&gt;
 int sum[15];
 int a[10],b[10];
 
 int kaizyo(int n){
 	if(n&lt;=1)return 1;
 	return n*kaizyo(n-1);
 }
 int suti(int a,int c){
 	return (b[a]*100+b[a+1]*10+b[a+2])%c;
 }
 void check(int n){
 	int i,j,now=n,tmp;
 	for(i=0;i&lt;10;i++){
 		a[i]=0;
 		b[i]=0;
 	}
 	
 	for(i=9;i&gt;=0;i--){
 		if(i)tmp=now/kaizyo(i);
 			else tmp=0;
 		now-=tmp*kaizyo(i);
 		for(j=0;tmp&gt;=0;j++){
 			if(a[j]==0)tmp--;
 			if(tmp==-1){
 				a[j]=1;
 				b[i]=j;
 				break;
 			}
 		}
 	}
 	
 	if(b[3]%2==0 &amp;&amp; (b[2]+b[3]+b[4])%3==0 &amp;&amp; b[5]%5==0 &amp;&amp; !suti( 4,7)){
 		if(!suti(5,11) &amp;&amp; !suti(6,13) &amp;&amp; !suti(7,17)){
 			for(i=0;i&lt;10;i++)sum[i]+=b[i];
 		}
 	}
 }
 
 int main(){
 	int i,j;
 	for(i=0;i&lt;15;i++)sum[i]=0;
 	for(i=0;i&lt;kaizyo(10);i++)check(i);
 	for(i=9;i;i--){
 		sum[i-1]+=sum[i]/10;
 		sum[i]%=10;
 	}
 	for(i=0;i&lt;10;i++)printf(&quot;%d&quot;,sum[i]);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４４}
 /*後で書きなおす*/
 #include&lt;stdio.h&gt;
 #include&lt;math.h&gt;
 int main(){
 	int i,j,a,b;
 	float c,d;
 	
 	for(i=1;i&lt;10000;i++){
 		a=i*(3*i-1)/2;
 		for(j=1;j&lt;i;j++){
 			b=j*(3*j-1)/2;
 			c=(sqrt(1+24*(a-b))+1)/6;
 			d=(sqrt(1+24*(a+b))+1)/6;
 			
 			if(floor(c)==c &amp;&amp; floor(d)==d){
 				printf(&quot;%d %d %d\n&quot;,a,b,a-b);
 				return 0;
 			}
 		}
 	}
 	return 0;
 }

#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４５}
 #include&lt;stdio.h&gt;
 int main(){
 	long long i=2,j=2,inow=1,jnow=1;
 	while(1){
 		if(inow&lt;jnow){
 			for(;inow&lt;jnow;i++){
 				inow=i*(2*i-1);
 			}
 		}else if(inow&gt;jnow){
 			for(;inow&gt;jnow;j++){
 				jnow=j*(3*j-1)/2;
 			}
 		}else{
 			printf(&quot;%lld\n&quot;,inow);
 			inow=i*(2*i-1);
 			i++;
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４６}
 #include&lt;stdio.h&gt;
 int sosu(int n){
 	int i;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0)return 0;
 	}
 	return 1;
 }
 int main(){
 	int i,j,flag;
 	for(i=3;i&lt;1e7;i+=2){
 		if(!sosu(i)){
 			for(j=1,flag=0;2*j*j&lt;i;j++){
 				if(sosu(i-2*j*j))flag=1;
 			}
 			if(!flag){
 				printf(&quot;%d\n&quot;,i);
 				return 0;
 			}
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４７}
 #include&lt;stdio.h&gt;
 int soinsu(int n){
 	int i,j,a[20];
 	//printf(&quot;%d: &quot;,n);
 	for(i=0;i&lt;20;i++)a[i]=0;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0){
 			n/=i;
 			for(j=0;;j++){
 				if(a[j]==0){
 					a[j]=i;
 					break;
 				}
 				if(a[j]==i)break;
 			}
 			i=1;
 		}
 	}
 	for(j=0;;j++){
 		if(a[j]==0){
 			a[j]=n;
 			break;
 		}
 		if(a[j]==n)break;
 	}
 	for(i=0;a[i];i++){
 	//	printf(&quot;%d &quot;,a[i]);
 	};
 	//puts(&quot;&quot;);
 	return i;
 }
 int main(){
 	int i,j,count=0;
 	for(i=1;;i++){
 		if(soinsu(i)==4){
 			count++;
 		}else{
 			count=0;
 		}
 		if(count&gt;=4){
 			printf(&quot;Ans=%d\n&quot;,i-3);
 			return 0;
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４８}
 #include&lt;stdio.h&gt;
 int Ori[15],Ans[15],Tmp[15];
 void cul(int a,int b){
 	int i,j,k;
 	for(i=0;i&lt;=10;i++){
 		Ori[i]=Ans[i]=Tmp[i]=0;
 	}
 	for(i=0;a&gt;0;i++){
 		Ori[i]=a%10;
 		a/=10;
 	}
 		
 	for(i=0,Ans[0]=1;i&lt;b;i++){
 		for(j=0;j&lt;11;j++){
 			for(k=0;j+k&lt;11;k++){
 				Tmp[j+k]+=Ori[j]*Ans[k];
 				Tmp[j+k+1]+=Tmp[j+k]/10;
 				Tmp[j+k]%=10;
 			}
 		}
 		for(j=0;j&lt;11;j++){
 			Ans[j]=Tmp[j];
 			Tmp[j]=0;
 		}
 	}
 }
 int main(int argc,char*argv[]){
 	int i,j,*Ans2=calloc(15,sizeof(int));
 	for(i=1;i&lt;=atoi(argv[1]);i++){
 		cul(i,i);
 		for(j=0;j&lt;13;j++){
 			Ans2[j]+=Ans[j];
 			Ans2[j+1]+=Ans2[j]/10;
 			Ans2[j]%=10;
 		}
 	}
 	for(i=9;i&gt;=0;i--){
 		printf(&quot;%d&quot;,Ans2[i]);
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４９}
 #include&lt;stdio.h&gt;
 int sosu(int n){
 	int i;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0)return 0;
 	}
 	return 1;
 }
 int check(int a,int b){
 	int i,tmp1[10],tmp2[10];
 	for(i=0;i&lt;10;i++)tmp1[i]=tmp2[i]=0;
 	while(a&gt;0){
 		tmp1[a%10]++;
 		a/=10;
 	}
 	while(b&gt;0){
 		tmp2[b%10]++;
 		b/=10;
 	}
 	for(i=0;i&lt;10;i++){
 		if(tmp1[i]!=tmp2[i])return 0;
 	}
 	return 1;
 }
 int main(){
 	int i,j,k;
 	for(i=1001;i&lt;10000;i++){
 		if(!sosu(i))continue;
 		for(j=1;i+2*j&lt;10000;j++){
 			if(sosu(i+j)&amp;&amp;sosu(i+2*j)&amp;&amp;check(i,i+j)&amp;&amp;check(i,i+2*j)){
 				printf(&quot;%d%d%d\n&quot;,i,i+j,i+j+j);
 			}
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題５０}
 #include&lt;stdio.h&gt;
 #include&lt;stdlib.h&gt;
 int main(){
 	long i,j,sum=0,now=0,k=1;
 	int *map=(int*)malloc(1e6*sizeof(int));
 	long *map2=(long*)calloc(1e6,sizeof(long));	
 	for(i=0;i&lt;1e6;i++)map[i]=1;
 	for(i=4;i&lt;1e6;i+=2)map[i]=0;
 	for(i=3,k=1,map2[0]=2;i&lt;1e6;i+=2){
 		if(map[i]){
 			map2[k++]=i;
 			for(j=2;i*j&lt;1e6;j++){
 				map[i*j]=0;
 			}
 		}
 	}
 	for(i=0;i&lt;1e6;i++){
 		for(j=i,sum=0;sum&lt;1e6 &amp;&amp; j&lt;k;j++){
 			sum+=map2[j];
 			if(j-i+1&gt;now &amp;&amp; sum&lt;1e6 &amp;&amp; map[sum] ){
 				printf(&quot;length=%d val=%d\n&quot;,j-i+1,sum);
 				now=j-i+1;
 			}
 		}
 
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題５１}
 #include&lt;stdio.h&gt;
 int *a;
 int beki(int n){
 	int i,re=1;
 	for(i=0;i&lt;n;i++)re*=2;
 	return re;
 }
 int keta(int n){
 	int re=0;
 	for(;n&gt;=1;n/=10,re++);
 	return re;
 }
 int check(int n,int flag){
 	int i,j,k,tmp,tmp2,count,re=0,flag2,flag3;
 	int hai[10];
 	char ch[10];
 	for(i=1;i&lt;beki(keta(n));i++){
 		count=0;
 		sprintf(ch,&quot;%d&quot;,n);
 
 		tmp=i;
 		flag2=0;
 		flag3=0;
 		for(k=0;k&lt;beki(k);k++){
 			if(tmp&gt;=beki(keta(n)-k-1)){
 				tmp-=beki(keta(n)-k-1);
 				if(flag2==0){
 					tmp2=ch[k]-&#039;0&#039;;
 					flag2=1;
 				}else{
 					if(tmp2!=ch[k]-&#039;0&#039;)flag3=1;
 				}
 			}
 		}
 		if(flag3==1)continue;
 
 		if(beki(keta(n)-1)==i)continue;
 		for(j=0;j&lt;10;j++){
 			tmp=i;
 			for(k=0;k&lt;beki(k);k++){
 				if(tmp&gt;=beki(keta(n)-k-1)){
 					tmp-=beki(keta(n)-k-1);
 					ch[k]=j+&#039;0&#039;;
 				}
 			}
 			if(a[atoi(ch)]==0 &amp;&amp; keta(atoi(ch))==keta(n)){
 				count++;
 				if(flag)puts(ch);
 			}
 		}
 		if(flag)puts(&quot;--------------&quot;);
 		if(re&lt;count)re=count;
 	}
 	return re;
 }
 int main(){
 	int i,j,k=0;
 	a=calloc(1e6,sizeof(int));
 	for(i=4;i&lt;1e6;i+=2)a[i]=1;
 	for(i=3;i&lt;1e6;i+=2){
 		if(a[i]==0){
 			for(j=2;i*j&lt;1e6;j++){
 				a[i*j]=1;
 			}
 		}
 	}
 	for(i=3;;i+=2){
 		if(a[i]==0){
 			if(check(i,0)&gt;=8){
 				printf(&quot;Ans=%d Num=%d\n&quot;,i,check(i,1));
 				return 0;
 			}
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題５２}
 #include&lt;stdio.h&gt;
 int a[10];
 void check(int n,int*a){
 	int i;
 	for(i=0;i&lt;10;i++)a[i]=0;
 	while(n&gt;0){
 		a[n%10]++;
 		n/=10;
 	}
 	return;
 }
 int main(){
 	int i,j,k,b[10],flag;
 	for(i=1;;i++){
 		check(i,b);
 		flag=1;
 		for(j=1;j&lt;=5;j++){
 			check(i*j,a);
 			for(k=0;k&lt;10;k++){
 				if(a[k]!=b[k])flag=0;
 			}
 		}
 		if(flag==1){
 			printf(&quot;%d\n&quot;,i);
 			return 0;
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題５３}
 #include&lt;stdio.h&gt;
 int make(long a,long b){
 	long i,re=1;
 	for(i=1;i&lt;=b &amp;&amp; re&lt;=1e6;i++){
 		re*=(a-i+1);
 		re/=i;
 	}
 	if(re&gt;1e6)return 1;
 	return 0;
 }
 int main(){
 	int i,j,k,result=0;
 	for(i=1;i&lt;=100;i++){
 		for(j=1;2*j&lt;=i;j++){
 			if(make(i,j)){
 				result+=(2*(i/2-j+1));
 				if(i%2==0)result--;
 				break;
 			}
 		}
 	}
 	printf(&quot;%d個\n&quot;,result);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題５９}
 #include&lt;stdio.h&gt;
 int main(int argc,char*argv[]){
 	FILE*fp;
 	int hai[10000];
 	int i=0,j,k,point,ma,result=0;
 	int key,key1,key2;
 	char ch,ch1,ch2;
 	if(argc&lt;2||!(fp=fopen(argv[1],&quot;r&quot;)))return 0;
 	while(EOF!=fscanf(fp,&quot;%d&quot;,&amp;hai[i++])){
 		if(EOF==fscanf(fp,&quot;%c&quot;,&amp;ch))break;
 		if(ch!=&#039;,&#039;)break;
 	};
 	for(ma=0,key=&#039;a&#039;;key&lt;=&#039;z&#039;;key++){
 		point=0;
 		for(j=0;j&lt;i;j+=3){
 			if((hai[j]^key)&gt;=&#039;a&#039;&amp;&amp;(hai[j]^key)&lt;=&#039;z&#039;){
 				point++;
 			}
 		}
 		if(point&gt;ma){
 			ma=point;
 			ch=key;
 		}
 	}
 	printf(&quot;Key=%c&quot;,ch);
 	for(ma=0,key1=&#039;a&#039;;key1&lt;=&#039;z&#039;;key1++){
 		point=0;
 		for(j=1;j&lt;i;j+=3){
 			if((hai[j]^key1)&gt;=&#039;a&#039;&amp;&amp;(hai[j]^key1)&lt;=&#039;z&#039;){
 				point++;
 			}
 		}
 		if(point&gt;ma){
 			ma=point;
 			ch1=key1;
 		}
 	}
 	printf(&quot;%c&quot;,ch1);
 	for(ma=0,key2=&#039;a&#039;;key2&lt;=&#039;z&#039;;key2++){
 		point=0;
 		for(j=2;j&lt;i;j+=3){
 			if((hai[j]^key2)&gt;=&#039;a&#039;&amp;&amp;(hai[j]^key2)&lt;=&#039;z&#039;){
 				point++;
 			}
 		}
 		if(point&gt;ma){
 			ma=point;
 			ch2=key2;
 		}
 	}
 	printf(&quot;%c\n&quot;,ch2);
 	for(j=0;j&lt;i;j++){
 		if(j%3==0){
 			printf(&quot;%c&quot;,hai[j]^ch);
 			result+=(hai[j]^ch);
 		}
 		if(j%3==1){
 			printf(&quot;%c&quot;,hai[j]^ch1);
 			result+=(hai[j]^ch1);
 		}
 		if(j%3==2){
 			printf(&quot;%c&quot;,hai[j]^ch2);
 			result+=(hai[j]^ch2);
 		}
 	}
 	printf(&quot;\nANS=%d\n&quot;,result);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題６０}    </description>
    <dc:date>2009-01-15T16:22:42+09:00</dc:date>
    <utime>1232004162</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/15.html">
    <title>ProjectEuler 1~</title>
    <link>https://w.atwiki.jp/kazm_m/pages/15.html</link>
    <description>
      -------------------
リンク
[[ProjectEuler ホームページ&gt;http://projecteuler.net/index.php?section=problems]]
[[ProjectEuler Pukiwiki&gt;http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler]]
-------------------
基本的にC言語で記述
#contents
-[[ProjectEuler 41~]]
-----
*  &amp;color(,#EE7700){問題１}
 #include&lt;stdio.h&gt;
 int main(){
 	int sum=0;
 	int i;
 	for(i=1;i&lt;1000;i++){
 		if(i%3 == 0 || i%5==0)sum+=i;
  	}
 	printf(&quot;Ans=%d\n&quot;,sum);
 } 
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２}
 #include&lt;stdio.h&gt;
 int main(){
 	int prev=1,now=2,next=3;
 	int sum=2,i;
 	for(i=3;next&lt;4000000;i++){
 		if(next%2==0)sum+=next;
 		prev=now;
 		now=next;
 		next+=prev;
 	}
 	printf(&quot;Ans=%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３}
 VisualStudioでビルド
 cygwinでは通らなかった(longlong 64bitが原因？)
 #include&lt;stdio.h&gt;
 int main(){
 	long long a;
 	a=600851475143;
 	int ma=0,i;
 	for(i=2;i*i&lt;=a;i++){
 		if(a%i==0){
 			a/=i;
 			if(ma&lt;i)ma=i;
 			i=1;
 		}
 	}
 	if(ma&lt;a){ma=a;}
 	printf(&quot;Ans=%d\n&quot;,ma);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４}
 #include&lt;stdio.h&gt;
 int check(int a){
 	int keta=0,i;
 	int b[8]={0,0,0,0,0,0,0,0};
 	while(a&gt;=1){
 		b[keta++]=a%10;
 		a/=10;
 	}
 	for(i=0;i&lt;keta;i++){
 		if(b[i]!=b[keta-1-i])return -1;
 	}
 	return 1;
 }
 int main(){
 	int i,j,ma=0;
 	for(i=999;i&gt;99;i--){
 		for(j=i;j&gt;99;j--){
 			if(check(i*j)==1 &amp;&amp; ma&lt;i*j ){
 				ma=i*j;
 				printf(&quot;%d×%d=%d\n&quot;,i,j,i*j);
 			}
 		}
 	}
 	printf(&quot;Ans=%d\n&quot;,ma);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題５}
 #include&lt;stdio.h&gt;
 int a[21];
 int check(int b){
 	int tmp[21];
 	int i,j;
 	for(i=0;i&lt;21;i++)tmp[i]=0;
 	for(i=2;i*i&lt;=b;i++){
 		if(b%i==0){
 			b/=i;
 			tmp[i]++;
 			i=1;
 		}
 	}
 	tmp[b]++;
 	
 	for(i=2;i&lt;21;i++){
 		if(tmp[i]&gt;a[i])a[i]=tmp[i];
 	}
 	return;
 }
 
 int main(){
 	int i,j,tmp,sum=1;
 	for(i=0;i&lt;21;i++)a[i]=0;
 	for(i=2;i&lt;21;i++){
 		check(i);
 	}
 	
 	for(i=2;i&lt;21;i++){
 		for(j=0,tmp=1;j&lt;a[i];j++){
 			tmp*=i;
 		}
 		sum*=(tmp);
 	}
 	printf(&quot;Ans=%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題６}
 #include&lt;stdio.h&gt;
 int main(){
 	int i;
 	double re1=0,re2=0;
 	for(i=1;i&lt;=100;i++){
 		re1+=i;
 		re2+=i*i;
 	}
 	printf(&quot;%10.0f\n&quot;,re1*re1-re2);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題７}
 /*まったく意味のない関数化ｗ*/
 #include&lt;stdio.h&gt;
 #define SEARCH 10001
 int sosu(int a){
 	int i;
 	for(i=2;i*i&lt;=a;i++){
 		if(a%i==0)return 0;
 	}
 	return 1;
 }
 
 int search_sosu(int a){
 	int i,count=1;
 	if(a==1)return 2;
 	for(i=3;!(count==a);i+=2){
 		if(sosu(i)==1)count++;
 	}
 	return i-2;
 }
 
 int main(){
 	printf(&quot;Ans=%d\n&quot;,search_sosu(SEARCH));
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題８}
 #include&lt;stdio.h&gt;
 int suti(char ch){
 	int i;
 	char a[10]={&#039;0&#039;,&#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;,&#039;5&#039;,&#039;6&#039;,&#039;7&#039;,&#039;8&#039;,&#039;9&#039;};
 	for(i=0;i&lt;10;i++){
 		if(a[i]==ch)return i;
 	}
 	return -1;
 }
 int main(){
 	char c;
 	int i,ma=1,now=1,a[6]={1,1,1,1,1,1},tmp;
 	while(EOF!=scanf(&quot;%c &quot;,&amp;c)){
 		a[5]=suti(c);
 		for(i=1,now=1;i&lt;6;i++){
 			now*=a[i];
 		}
 		if(ma&lt;now)ma=now;
 		for(i=0;i&lt;5;i++){
 			tmp=a[i];
 			a[i]=a[i+1];
 			a[i+1]=tmp;
 		}
 	}
 	printf(&quot;Ans=%d\n&quot;,ma);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題９}
 #include&lt;stdio.h&gt;
 int main(){
 	int i,j,tmp;
 	for(i=1;i&lt;333;i++){
 		for(j=i+1;j&lt;500;j++){
 			tmp=1000-i-j;
 			if(tmp&lt;=j)break;
 			if(i*i+j*j==tmp*tmp)printf(&quot;%d&quot;,i*j*tmp);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１０}
 #include&lt;stdio.h&gt;
 int sosu(int a){
 	int i;
 	for(i=2;i*i&lt;=a;i++){
 		if(a%i==0)return -1;
 	}
 	return 0;
 }
 int main(){
 	int i,j;
 	long long sum=2;
 	for(i=3;i&lt;=2000000;i++){
 		if(sosu(i)==0)sum+=i;
 	}
 	printf(&quot;SUM=%lld\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１１}
 #include&lt;stdio.h&gt;
 int main(){
 	int i,j,ma=1,now,a[20][20];
 	for(i=0;i&lt;20;i++){
 		for(j=0;j&lt;20;j++){
 			scanf(&quot;%d &quot;,&amp;a[i][j]);
 		}
 	}
 	for(i=0;i&lt;20;i++){
 		for(j=0;j&lt;20;j++){
 			if(j&lt;=16){
 				now=a[i][j]*a[i][j+1]*a[i][j+2]*a[i][j+3];
 				if(ma&lt;now)ma=now;
 			}
 			if(i&lt;=16){
 				now=a[i][j]*a[i+1][j]*a[i+2][j]*a[i+3][j];
 				if(ma&lt;now)ma=now;
 			}
 			if(i&lt;=16 &amp;&amp; j&lt;=16){
 				now=a[i][j]*a[i+1][j+1]*a[i+2][j+2]*a[i+3][j+3];
 				if(ma&lt;now)ma=now;
 			}
 			if(i&lt;=16 &amp;&amp; j&gt;=3){
 				now=a[i][j]*a[i+1][j-1]*a[i+2][j-2]*a[i+3][j-3];
 				if(ma&lt;now)ma=now;
 			}
 			if(i&gt;=3 &amp;&amp; j&lt;=16){
 				now=a[i][j]*a[i-1][j+1]*a[i-2][j+2]*a[i-3][j+3];
 				if(ma&lt;now)ma=now;
 			}
 
 		}
 	}
 	printf(&quot;Ans=%d\n&quot;,ma);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１２}
 #include&lt;stdio.h&gt;
 int check(int a){
 	int re=2,i;
 	for(i=2;i*i&lt;=a;i++){
 		if(a%i==0)re+=2;
 		if(i*i==a)re-=1;
 	}
 	return re;
 }
 int main(){
 	int i,now=0;
 	for(i=1;;i++){
 		now+=i;
 		if(check(now)&gt;=501){
 			printf(&quot;Ans=%d\n&quot;,now);
 			break;
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１３}
 #include&lt;stdio.h&gt;
 int suti(char ch){
 	char tmp[10]={&#039;0&#039;,&#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;,&#039;5&#039;,&#039;6&#039;,&#039;7&#039;,&#039;8&#039;,&#039;9&#039;};
 	int k;
 	for(k=0;k&lt;10;k++){
 		if(tmp[k]==ch)return k;
 	}
 	return 0;
 }
 
 int main(){
 	int a[60],i,j;
 	char ch;
 	for(i=0;i&lt;60;i++)a[i]=0;
 	for(i=0;i&lt;100;i++){
 		for(j=0;j&lt;50;j++){
 			scanf(&quot;%c &quot;,&amp;ch);
 			//printf(&quot;%d&quot;,suti(ch));
 			a[49-j]+=suti(ch);
 		}
 		//printf(&quot;\n&quot;);
 	}
 	
 	for(i=0;i&lt;59;i++){
 		a[i+1]+=a[i]/10;
 		a[i]%=10;
 	}
 	for(i=59;;i--){
 		if(a[i]!=0){
 			for(j=0;j&lt;10;j++)printf(&quot;%d&quot;,a[i-j]);
 			break;
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１４}
 #include&lt;stdio.h&gt;
 int a[1000001];
 int check(int t){
 	long long tmp=t;
 	//printf(&quot;%lld\n&quot;,tmp);
 	int count=0;
 	if(a[t]!=0)return a[t];
 	do{
 		if(tmp%2==0){
 			tmp/=2;
 		}else{
 			tmp=tmp*3+1;
 		}
 		count++;
 	}while(tmp&gt;1000000);
 
 	a[t]=check(tmp)+count;
 	return a[t];
 }
 int main(){
 	int i,ma=-1;
 	int result=-1;
 	for(i=1000000;i&gt;1;i--){
 		a[i]=0;
 	}
 	a[1]=1;
 
 	for(i=1000000;i&gt;1;i--){
 		a[i]=check(i);
 	}
 
 	for(i=1000000;i&gt;1;i--){
 		if(ma&lt;a[i]){
 			ma=a[i];
 			printf(&quot;%d %d\n&quot;,ma,i);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１５}
 #include&lt;stdio.h&gt;
 #define X 20
 #define Y 20
 int main(){
 	int i,j;
 	long long a[100][100];
 	
 	for(i=0;i&lt;100;i++){
 		for(j=0;j&lt;100;j++)a[i][j]=0;
 	}
  	a[0][0]=1;
 	for(i=0;i&lt;=Y;i++){
 		for(j=0;j&lt;=X;j++){
 			if(j&gt;0)a[i][j]+=a[i][j-1];
 			if(i&gt;0)a[i][j]+=a[i-1][j];
 		}
 	}
 	printf(&quot;Ans=%lld\n&quot;,a[Y][X]);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１６}
 #include&lt;stdio.h&gt;
 #define KETA 500
 int a[KETA];
 void cal(int aa,int bb){
 	int i,j,count=0,flag=0;
 	int tmp=aa;
 	for(i=0;i&lt;KETA;i++)a[i]=0;
 	while(tmp&gt;=1){
 		a[count++]=tmp%10;
 		tmp/=10;
 	}
 	for(i=0;i&lt;bb-1;i++){
 		for(j=0;j&lt;KETA;j++)a[j]*=aa;
 		for(j=0;j&lt;KETA-1;j++){
 			a[j+1]+=a[j]/10;
 			a[j]%=10;
 		}
 	}
 //	for(i=KETA-1;i&gt;=0;i--){
 //		if(a[i]!=0)flag=1;
 //		if(flag==1)printf(&quot;%d&quot;,a[i]);
 //	}
 }
 
 int main(){
 	int i,sum=0;
 	cal(2,1000);
 	for(i=0;i&lt;KETA;i++)sum+=a[i];
 	printf(&quot;Ans=%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１７}
 #include&lt;stdio.h&gt;
 int moji_num(int in){
 	int re=0;
 	int a[20]={0,3,3,5,4,4,3,5,5,4,3,6,6,8,8,7,7,9,8,8};
 	int b[10]={0,0,6,6,5,5,5,7,6,6};
 	if(in%100 &lt; 20)re+=a[in%100];
 		else re+=a[in%10];
 	re+=b[(in/10)%10];
 	if(in&gt;=100){
 		re+=a[in/100];
 		re+=7;
 		if(in%100 != 0)re+=3;
 	}
 	if(in==1000)re++;
 	return re;
 }
 	
 int main(){
 	int i,sum=0;
 	for(i=1;i&lt;=1000;i++){
 		printf(&quot;%d =%d文字\n&quot;,i,moji_num(i));
 		sum+=moji_num(i);
 	}
 	printf(&quot;%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１８}
 #include&lt;stdio.h&gt;
 int main(){
 	int a[2][200];
 	int lim=1,ma=0,tmp;
 	int i,j;
 	for(i=0;i&lt;2;i++){
 		for(j=0;j&lt;200;j++){
 			a[i][j]=0;
 		}
 	}
 	i=0;
 	j=0;
 	while(EOF !=scanf(&quot;%d&quot;,&amp;tmp)){
 		a[1][i++]=tmp;
 		if(i&lt;lim)continue;
 		for(i=0;i&lt;200;i++){
 			if(i==0 || a[0][i-1]&lt;a[0][i]){
 				a[1][i]+=a[0][i];
			}else{
 				a[1][i]+=a[0][i-1];
 			}
 		}
 		for(i=0;i&lt;200;i++){
 			a[0][i]=a[1][i];
 		}
 		lim++;
 		i=0;
 	}
 	for(i=0;i&lt;200;i++){
 		if(a[0][i]==0)break;
 		if(ma&lt;a[0][i]) ma=a[0][i];
 	}
 	printf(&quot;%d\n&quot;,ma);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題１９}
 #include&lt;stdio.h&gt;
 int uruu(int year){
 	if(year%4!=0 || (year%100==0 &amp;&amp; year%400!=0))return 0;
 	return 1;
 }
 int main(){
 	int cl[12]={31,31,28,31,30,31,30,31,31,30,31,30};//１２月・１月・…・１１月
 	int now=1,sum=0;
 	int i,j;
 	for(i=1900;i&lt;2001;i++){
 		for(j=1;j&lt;=12;j++){
 			if(i!=1900 &amp;&amp; now%7==0)sum++;
 			now+=cl[j%12];
 			if(j==2)now+=uruu(i);
 		}
 	}
 	printf(&quot;%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２０}
 #include&lt;stdio.h&gt;
 int a[2][500];
 void cal(int b){
 	int i,j=0,k;
 	for(i=0;i&lt;500;i++)a[1][i]=0;
 	while(b&gt;=1){
 		for(i=0;i&lt;500;i++)a[1][i+j] += (a[0][i]*(b%10));
  		b/=10;
 		j++;
 	}
 	for(i=0;i&lt;499;i++){
 		a[1][i+1]+=(a[1][i]/10);
 		a[1][i] %= 10;
 	}
 	for(j=0;j&lt;500;j++)a[0][j]=a[1][j];
 }
 int main(){
 	int i,j,k,sum=0;
 	for(i=0;i&lt;2;i++){
 		for(j=0;j&lt;500;j++)a[i][j]=0;
 	}
 	a[0][0]=1;
 	for(i=1;i&lt;=100;i++){
 		cal(i);
 		printf(&quot;*%d=&quot;,i);
 		for(k=499;a[0][k]==0;k--){};
 		for(j=k;j&gt;=0;j--)printf(&quot;%d&quot;,a[0][j]);
 		printf(&quot;\n&quot;);
 	}
 	for(j=499;j&gt;0;j--)sum+=a[0][j];
 	printf(&quot;\n%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２１}
 #include&lt;stdio.h&gt;
 int cal(int n){
 	int i;
 	int sum=1;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0){
 			sum+=i;
 			if(i!=n/i)sum+=n/i;
 		}
 	}
 	return sum;
 }
 	
 int main(){
 	int i,j;
 	int sum=0;
 	int a[10000];
 	for(i=0;i&lt;10000;i++)a[i]=0;
 	
 	for(i=1;i&lt;10000;i++){
 		if(i==cal(cal(i)) &amp;&amp; i!=cal(i) ){
 			a[i]=1;
 			sum+=i;
 			printf(&quot;%d %d %d\n&quot;,i,cal(i),cal(cal(i)));
 		}
 	}
 	printf(&quot;%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２２}
 #include&lt;stdio.h&gt;
 #include&lt;string.h&gt;
 char ch[6000][20];
 int main(){
 	int i=0,j=0,k,sum=0,now;
 	char tmp[20];
 	char tmp2;
 	while(EOF!=scanf(&quot;%c&quot;,&amp;tmp2)){
 		if(tmp2==&#039;,&#039;|| tmp2==&#039;&quot;&#039;){
 			if(j!=0){
 				j=0;
 				strcpy(&amp;ch[i++][0],tmp);
 			}
 			continue;
 		}
 		tmp[j++]=tmp2;
 		tmp[j]=&#039;\0&#039;;
 	}
 	
 	for(j=i-1;j&gt;0;j--){
 		for(k=0;k&lt;j;k++){
 			if(strcmp(&amp;ch[k][0],&amp;ch[k+1][0])&gt;0){
 				strcpy(tmp,&amp;ch[k][0]);
 				strcpy(&amp;ch[k][0],&amp;ch[k+1][0]);
 				strcpy(&amp;ch[k+1][0],tmp);
 			}
 		}
 	}
 	for(j=0;j&lt;i;j++){
 		now=0;
 		for(k=0;ch[j][k]!=&#039;\0&#039;;k++)	now+=ch[j][k]-64;
 		sum+=(j+1)*now;
 		printf(&quot;%d*%d＝%d 合計%d %s\n&quot;,j+1,now,now*(j+1),sum,&amp;ch[j][0]);
 	}
 	printf(&quot;%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２３}
 #include&lt;stdio.h&gt;
 #define MAX_NUM 28124
 int search(int n){
 	int sum=1,i;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0){
 			sum+=i;
 			if(i*i!=n)sum+=n/i;
 		}
 	}
 	return (n&lt;sum);
 }
 int main(){
 	int a[2][MAX_NUM];
 	int i,j;
 	int sum=0;
 	for(i=1;i&lt;MAX_NUM;i++){
 		a[1][i]=0;
 		a[0][i]=search(i);
 	}
 	for(i=1;i&lt;MAX_NUM;i++){
 		if(a[0][i]==0)continue;
 		for(j=i;i+j&lt;MAX_NUM;j++){
 			if(a[0][j]==0)continue;
 			a[1][i+j]=1;
 		}
 	}
 	for(i=0;i&lt;MAX_NUM;i++){
 		if(a[1][i]==0){
 			sum+=i;
 			printf(&quot;now=%d sum=%d\n&quot;,i,sum);
 		}
 	}
 	printf(&quot;%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２４}
 #include&lt;stdio.h&gt;
 int a[10];
 int kaizyo(int n){
 	if(n&lt;=1)return 1;
 	return n*kaizyo(n-1);
 }
 void search(int n,int size){
 	if(size==0)return;
 	int i,tmp=0;
 	tmp= n / (kaizyo(size-1));
 	for(i=0;;i++){
 		if(a[i]==0)tmp--;
 		if(tmp&lt;0){
 			a[i]=1;
 			printf(&quot;%d &quot;,i);
 			break;
 		}
 	}
 	search(n%kaizyo(size-1),size-1);
 }
 int main(){
 	int i;
 	for(i=0;i&lt;10;i++)a[i]=0;
 	scanf(&quot;%d&quot;,&amp;i);
 	search(i-1,10);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２５}
 #include&lt;stdio.h&gt;
 int main(){
 	int a[1000],b[1000];
 	int i,count=2,tmp;
 	for(i=0;i&lt;1000;i++){
 		a[i]=0;
 		b[i]=0;
 	}
 	a[0]=1;
 	b[0]=1;
 	while(b[999]==0){
 		for(i=0;i&lt;1000;i++){
 			a[i]+=b[i];
 			a[i+1]+=a[i]/10;
 			a[i]%=10;
 			tmp=a[i];
 			a[i]=b[i];
 			b[i]=tmp;
 		}
 		count++;
 	}
 	printf(&quot;%d\n&quot;,count);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２６}
 #include&lt;stdio.h&gt;
 int zyunkan(int n){
 	int i,j;
 	int now=1;
 	int a[1000];
 	for(j=0;j&lt;1000;j++)a[j]=0;
 	a[1]=1;
 	
 	for(i=2;;i++){
 		now*=10;
 		now%=n;
 		if(now==0)return 0;
 		if(a[now]!=0)return i-a[now];
 		a[now]=i;
 	}
 	return -1;
 }
 int main(){
 	int i,ma=0;
 	int a[1000];
 	for(i=2;i&lt;1000;i++){
 		if (ma&lt;zyunkan(i)){
 			 ma=zyunkan(i);
 			 printf(&quot;d = %d のとき %d\n&quot;,i,ma);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２７}
 #include&lt;stdio.h&gt;
 int sosu(int n){
 	if(n&lt;=1)return 0;
 	int i;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0)return 0;
 	}
 	return 1;
 }
 int main(){
 	int i,length=0;
 	int a,b;
 	for(a=-999;a&lt;1000;a++){
 		for(b=-999;b&lt;1000;b++){
 			i=0;
 			while(sosu(i*i+a*i+b)==1){
 				i++;
 			}
 			if(i&gt;length){
 				length=i;
 				printf(&quot;Ans=%d %d\n&quot;,a*b,i);
 			}
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２８}
 #include&lt;stdio.h&gt;
 int main(){
 	int i,sum=1;
 	for(i=3;i&lt;=1001;i+=2){
 		sum+=(4*i*i-6*i+6);
 	}
 	printf(&quot;Ans=%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題２９}
 /*無理やり解いた　もうちょっとスマートなプログラムに書き直す予定*/
 #include&lt;stdio.h&gt;
 int tmp[100];
 void soinsu(int a){
 	int i;
 	for(i=0;i&lt;100;i++)tmp[i]=0;
 	for(i=2;i*i&lt;=a;i++){
 		if(a%i==0){
 			printf(&quot;%3d&quot;,i);
 			tmp[i]++;
 			a/=i;
 			i=1;
 		}
 	}
 	tmp[a]++;
 	printf(&quot;%3d\n&quot;,a);
 }
 int main(){
 	int *a=calloc(10000*100,sizeof(int));//[10000][100];
 	int i,j,k,l,n=0,flag,sum=0;
 	for(i=2;i&lt;=100;i++){
 		soinsu(i);
 		for(j=2;j&lt;=100;j++){
 			k=0;
 			for(k=0,flag=1;k&lt;n;k++){
 				flag=0;
 				for(l=0;l&lt;100;l++){
 					if(a[k*100+l]!=tmp[l]*j)flag=1;
 				}
 				if(flag==0)break;
 			}
 			if(k==n){
 				for(k=0;k&lt;100;k++)a[n*100+k]=tmp[k]*j;
 				n++;
 				printf(&quot;%d^{%d}\n&quot;,i,j);
 			}	
 		}
 	}
 	printf(&quot;Ans=%d\n&quot;,n);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３０}
 #include&lt;stdio.h&gt;
 int main(){
 	int a[10]={0,1,32,243,1024,3125,7776,16807,32768,59049};
 	int i,j,k,sum=0;
 	
 	for(i=2;i&lt;1000000;i++){
 		k=0;
 		j=i;
 		while(j&gt;=1){
 			k+=a[j%10];
 			j/=10;
 		}
 		//printf(&quot;%d %d\n&quot;,k,i);
 		if(k==i){
 			printf(&quot;%d\n&quot;,k);
 			sum+=k;
 		}
 	}
 	printf(&quot;Ans=%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３１}
 #include&lt;stdio.h&gt;
 int coin[8]={1,2,5,10,20,50,100,200};
 int search(int now,int n){
 	int re=0,i;
 	if(now==200)return 1;
 	if(now&gt;200)return 0;
 	for(i=n;i&lt;8;i++){
 		re+=search(now+coin[i],i);
 	}
 	return re;
 }
 int main(){
 	printf(&quot;Ans=%d\n&quot;,search(0,0));
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３２}
 #include&lt;stdio.h&gt;
 int keta(int n){
 	int re=0;
 	for(re=1;(n/=10)&gt;=1;re++);
 	return re;
 }
 int check(int l,int r){
 	int re=0,tmp,k;
 	int a[10];
 	for(k=0;k&lt;10;k++)a[k]=0;
 	for(tmp=l*r,a[tmp%10]++;tmp&gt;=1;re++,tmp/=10,a[tmp%10]++);
 	for(tmp=l,a[tmp%10]++;tmp&gt;=1;re++,tmp/=10,a[tmp%10]++);
 	for(tmp=r,a[tmp%10]++;tmp&gt;=1;re++,tmp/=10,a[tmp%10]++);
 	for(k=1;k&lt;10;k++)if(a[k]!=1) return 0;
 	return 1;
 }
 int main(){
 	int i,j,k,l=0,Sum=0;
 	int add[100];
 	for(i=0;i&lt;100;i++)add[i]=0;
 	for(i=1;i&lt;100;i++){
 		for(j=i+1;keta(i)+keta(j)+keta(i*j)&lt;=9;j++){
 			//printf(&quot;i=%d j=%d i*j=%d keta=%d\n&quot;,i,j,i*j,keta(i)+keta(j)+keta(i*j));
 			if(keta(i)+keta(j)+keta(i*j)==9 &amp;&amp; check(i,j)){
 				for(k=0;k&lt;l;k++)
 					if(add[k]==i*j)break;
 				if(k==l){
 					add[k]=i*j;
 					printf(&quot;%d * %d = %d\n&quot;,i,j,i*j);
 					Sum+=i*j;
 					l++;
 				}
 			}
 		}
 	}
 	
 	printf(&quot;%d&quot;,Sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３３}
 #include&lt;stdio.h&gt;
 int main(){
 	int i,j,k;
 	int si=1,sj=1;
 	for(i=11;i&lt;100;i++){
 		for(j=i-1;j&gt;9;j--){
  			if((j/10)*i==(i%10)*j &amp;&amp; i/10==j%10){
 				printf(&quot;%d/%d\n&quot;,j,i);
 				si*=i%10;
 				sj*=j/10;
 			}
 		}
 	}
 	for(i=sj;i&gt;0 &amp;&amp; (si%i || sj%i);i--);
 	printf(&quot;Ans=%d\n&quot;,si/i);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３４}
 #include&lt;stdio.h&gt;
 int kaizyo(int n){
 	if(n&lt;=1)return 1;
 	return n*kaizyo(n-1);
 }
 int kaizyo2(int n){
 	int re=0;
 	do{
 		re+=kaizyo(n%10);
 		n/=10;
 	}while(n);
 	return re;
 }
 int main(){
 	int i,sum=0;
 	for(i=10;;i++){
 		if(i==kaizyo2(i)){
 			sum+=i;
 			printf(&quot;%d sum=%d\n&quot;,i,sum);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３５}
 #include&lt;stdio.h&gt;
 int keta(int n){
 	int re=1;
 	while((n/=10)&gt;=1)re++;
 	return re;
 }
 int sosu(int n){
 	int i;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0)return 0;
 	}
 	return 1;
 }
 int reverse(int n){
 	int re=0;
 	do{
 		re=re*10+n%10;
 	}while((n/=10)&gt;=1);
 	return re;
 }
 int check(int n){
 	int i,re=0,tmp,tmp2,tmp3;
 	tmp=n;
 	for(i=0;i&lt;keta(n);i++){
 		tmp3=keta(tmp);
 		tmp2=tmp%10;
 		tmp=reverse(tmp/10);
 		tmp=reverse(tmp*10+tmp2);
 		if(tmp3!=keta(tmp))return 0;
 		if(sosu(tmp)==0)return 0;
 	}
 	return 1;
 }
 int main(){
 	int i,tmp,tmp2,tmp3,sum=1;
 	for(i=3;i&lt;=1000000;i+=2){
 		if(check(i)==1){
 			printf(&quot;%d\n&quot;,i);
 			sum++;
 		}
 	}
 	printf(&quot;Ans=%d\n&quot;,sum);
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３６}
 #include&lt;stdio.h&gt;
 int reverse(int n){
 	int re=0;
 	while(n&gt;=1){
 		re=re*10+n%10;
 		n/=10;
 	}
 	return re;
 }
 int check(int n){
 	int keta[32];
 	int i,j;
 	for(i=0;n!=0;i++){
 		keta[i]=n%2;
 		n/=2;
 	}
 	for(j=0;j&lt;i;j++){
 		if(keta[j]!=keta[i-j-1])return 0;
 	}
 	return 1;
 }	
 int main(){
 	int i,sum=0;
 	for(i=1;i&lt;1000000;i++){
 		if(i==reverse(i) &amp;&amp; check(i)==1){
 			sum+=i;
 			printf(&quot;%d sum=%d\n&quot;,i,sum);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３７}
 #include&lt;stdio.h&gt;
 int sosu(int n){
 	int i;
 	if(n&lt;=1)return 0;
 	for(i=2;i*i&lt;=n;i++){
 		if(n%i==0)return 0;
 	}
 	return 1;
 }
 int reverse(int n){
 	int re=0;
 	while(n&gt;=1){
 		re=re*10+n%10;
 		n/=10;
 	}
 	return re;
 }
 int check(int n){
 	int tmp=n;
 	while(tmp&gt;=1){
 		if(sosu(tmp)==0)return 0;
 		tmp/=10;
 	}
 	tmp=n;
 	while(tmp&gt;=1){
 		if(sosu(tmp)==0)return 0;
 		tmp=reverse(reverse(tmp)/10);
 	}
 	return 1;
 }
 int main(){
 	int i,sum=0;
 	for(i=11;;i+=2){
 		if(check(i)==1){
 			sum+=i;
 			printf(&quot;%d sum=%d\n&quot;,i,sum);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３８}
 #include&lt;stdio.h&gt;
 int keta(int n){
 	int re=1;
 	while((n/=10)&gt;=1)re++;
 	return re;
 }
 int check(int n,int j){
 	int tmp,k,a[10];
 	
 	for(k=0;k&lt;10;k++)a[k]=0;
 	for(k=1;k&lt;j;k++){
 		tmp=n*k;
 		while(tmp){
 			a[tmp%10]++;
 			tmp/=10;
 		}
 	}
 	for(k=1;k&lt;10;k++){
 		if(a[k]!=1)return 0;
 	}
 	return 1;
 }
 int main(){
 	int i,j,k,ke;
 	for(i=1;;i++){
 		ke=0;
 		for(j=1;ke&lt;9;j++){
 			ke+=keta(i*j);
 		}
 		if(ke!=9)continue;
 		if(check(i,j)==1){
 			for(k=1;k&lt;j;k++){
 				printf(&quot;%d&quot;,i*k);
 			}
 			printf(&quot;\n&quot;);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題３９}
 #include&lt;stdio.h&gt;
 int main(){
 	int i,j,p,ma=0;
 	int ans[1000];
 	for(i=0;i&lt;1000;i++)ans[i]=0;
 	for(p=999;p&gt;2;p--){
 		for(i=1;i&lt;=333;i++){
 			for(j=i;j&lt;=p-i-j;j++){
 				if(i*i+j*j==(p-i-j)*(p-i-j)){
 					printf(&quot;%d %d %d\n&quot;,i,j,p-i-j);
 					ans[p]++;
 				}
 			}
 		}
 	}
 	for(i=1;i&lt;1000;i++){
 		if(ans[i]&gt;ma){
 			ma=ans[i];
 			printf(&quot;%d Ans=%d\n&quot;,ma,i);
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}
-----
*  &amp;color(,#EE7700){問題４０}
 #include&lt;stdio.h&gt;
 int keta(int n){
 	int re=1;
 	while((n/=10)&gt;=1)re++;
 	return re;
 }
 int reverse(int n){
 	int re=0;
 	while(n&gt;=1){
 		re=re*10+n%10;
 		n/=10;
 	}
 	return re;
 }
 int main(){
 	int i,j=1,now,tmp,check=1,ke=0,Ans=1;
 	for(i=1;;i++){
 		ke=keta(i);
 		tmp=reverse(i);
 		while(ke--&gt;0){
 			now=tmp%10;
 			tmp/=10;
 			if(j==check){
 				check*=10;
 				Ans*=now;
 				printf(&quot;Ans=%d now=%d\n&quot;,Ans,now);
 				if(check&gt;1000000)return 0;
 			}
 			j++;
 		}
 	}
 	return 0;
 }
#right(){&amp;link_up()}    </description>
    <dc:date>2008-12-24T21:32:39+09:00</dc:date>
    <utime>1230121959</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/23.html">
    <title>ProjectEuler</title>
    <link>https://w.atwiki.jp/kazm_m/pages/23.html</link>
    <description>
      -------------------
リンク
[[ProjectEuler ホームページ&gt;http://projecteuler.net/index.php?section=problems]]
[[ProjectEuler Pukiwiki&gt;http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler]]
-------------------
#contents
-----
[[ProjectEuler 1~]]
[[ProjectEuler 41~]]    </description>
    <dc:date>2008-12-22T13:02:53+09:00</dc:date>
    <utime>1229918573</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/kazm_m/pages/3.html">
    <title>右メニュー</title>
    <link>https://w.atwiki.jp/kazm_m/pages/3.html</link>
    <description>
          </description>
    <dc:date>2008-12-16T19:18:28+09:00</dc:date>
    <utime>1229422708</utime>
  </item>
  </rdf:RDF>
