C/C++の宿題片付けます 165代目
■ このスレッドは過去ログ倉庫に格納されています
0140デフォルトの名無しさん
2013/06/15(土) 18:05:17.96#include <stdio.h>
#define N 10000
int a[N + 1] = {0, 1};
int sq[10];
char chk[N + 1] = {0, 1};
int f(int n)
{
int i, j;
if(chk[n]) return a[n];
chk[n] = 1;
for(i = 0, j = n; j; j /= 10) i += sq[j % 10];
return a[n] = f(i);
}
int main(void)
{
int i;
for(i = 1; i <= 9; i++) sq[i] = i * i;
for(i = 2; i <= N; i++) if(!chk[i]) f(i);
for(i = 1; i <= N; i++) if(a[i]) printf("%d\n", i);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています