啊?哪?错?我新手。多指教~
不过上面的是没问题的。绝对可行,我用的是turboc3.0
为什么呢?为什么呢? 当n是素数。那显然n*n 是满足的,可你这程序没考虑到这个。不过思路很好
----------------解决方案--------------------------------------------------------
现在明白了 谢谢
[此贴子已经被作者于2006-4-16 3:13:19编辑过]
----------------解决方案--------------------------------------------------------
例如3*3=9,5*5=25,11*11=121。。。。就是这仅有的两个素因子相同,你这程序没考虑到
----------------解决方案--------------------------------------------------------
#include <math.h>
int IsPrime(int m)
{
int i;
for(i = 2;i <= (int)(sqrt(m));i++)
{if(m % i == 0) return 0;
else return 1;
}
}
int IsProNum(int n)
{
int i, j, t;
for(i = 2;i <= n;i++)
if(IsPrime(i))
for(j = 2;j <= n;j++)
{if(IsPrime(j)) t = j * i;
if(t == n) return 1;
else if(t > n) return 0;
}
}
main()
{
int n;
printf("Enter a number:\n");
scanf("%d", &n);
if(IsProNum(n)) printf("It's a MaoLaoDa number.\n");
else printf("It's not a MaoLaoDa number.\n");
}
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{
int a,b=0,d=0,i=2,j=2;
scanf("%d",&a);
if(a<=2)printf("这不是一个猫老大数\n");
else {
for(;i<a;i++)
{
if(a%i==0)b++;
}
for(;j<a;j++)
{
if(a%j==0)d++;
if(a==j*j)d++;
}
if(b==2||d==2)printf("这是一个猫老大数\n");
else printf("这不是一个猫老大数\n");
}
}
这次加上N*N的情况了~~
----------------解决方案--------------------------------------------------------