出错了~~·
编写程序P3,从键盘输入正整数N(N<32768),然后计算从1 到 N的N个正整数中,有几个是整数的2次幂、3次幂、4次幂、……,在屏幕上显示计算结果。例如,键盘输入100,屏幕应该输出13,因为有13个整数符合要求:
1=12=13=14=……,
4=22,
8=23,
9=32,
16=24=42,
25=52,
27=33,
32=25,
36=62,
49=72,
64=26=43=82,
81=34=92,
100=102
提示:注意上例中16这样的数不能重复计数,除了使用“高级”的方法外,也可以使用做标记的方法来避免重复,因为N的大小有限。 #include <iostream.h>
#include <math.h>
void main()
{
long int N;
cout<<"请输入正整数N (<32768):"<<endl;
cin>>N;
long int t;
int count=0;
long int a[32768];
int i=0,j;
int x,y;
for ( x=1,y=2;t<N;x++)
{
t=pow(x,y);
for(x=1,y=2;t<N;y++)
{
for( i++;;)
{
a[i]=t;
}
count++;
}
}
for(i=0;i<=count;i++)
{
for( j=i+1;j<=count;j++)
if (a[0]==a[j])
{
count--;
}
cout<<count<<endl;
}
}
头晕~~~请大家帮我看看!!