C语言程序设计:整数问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 09:35:00
输入一个整数n(0<=n<9),请输出满足以下条件的n位正整数的个数:

要求该n位整数的从高位开始前1位可以被1整除,该n位整数前2位可以被2*2整除,该整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。即该整数前k位都可被k平方整除。

请输出符合该条件的n位正整数的数量。

例如:n=1,则符合条件的1位正整数为1~9,输出答案9。n=2,符合条件的正整数为:12,16,20,24,28,32,36,40,44,48,52, 56,60,64,68,72,76,80,84,88,92,96,则输出答案22。当n=4时,2432就是一个符合题意的整数。第一位2可以被1整除;前2为24可以被4整除;前3位243可以被9整除;整个4位2432可以被16整除。

#include<stdio.h>
void main(void)
{
int n,count=0,i,j,k,x;
int max=1,min=9;
printf("shuru n:");
scanf("%d",&n);
for(i=n;i>1;i--)
{
max*=10;
min=min*10+9;
}
for(j=min;j<=max;j++)
{
x=j;
for(k=n;k>0;k--)
{
if(x%(k*k)!=0)break;
x/=10;
}
if(k<0)
count++;
}
printf("jieguo you %d ge!",count);
}