我解的是这样:
#include
main()
{
int n;
scanf("%d",&n);
if(n%10)
printf("It's not a MaoLaoDa number.");
else
printf("It's a MaoLaoDa number.");
}
但这样的是不对的,请问是怎么回事,我自己也试了一下,输入大整数的时候就不对了,请教是哪里出错了.
谢谢!!
我解的是这样:
#include
main()
{
int n;
scanf("%d",&n);
if(n%10)
printf("It's not a MaoLaoDa number.");
else
printf("It's a MaoLaoDa number.");
}
但这样的是不对的,请问是怎么回事,我自己也试了一下,输入大整数的时候就不对了,请教是哪里出错了.
谢谢!!
你这想法。。。
[CODE]
#include <stdio.h>
#include <conio.h>
#include <math.h>
int Prime(long);
void main()
{
long n,i,j,m;
scanf("%ld",&n);
m=sqrt(n);
for(i=2;i<=m;i++) /*这里3以后可以每次加2,自己改*/
{
if(n%i!=0)
continue;
j=n/i;
if( Prime(i) && Prime(j) )
{
printf("It's a MaoLaoDa number.\n");
break;
}
}
if(i>m)
printf("It's not a MaoLaoDa number.\n");
getch();
}
int Prime(long n)
{
int i,j;
i=sqrt(n);
for(j=2;j<=i&&n%j!=0;j++);
return j>i ? 1:0 ;
}
[/CODE]
#include "iostream.h"
int a[100];
int n=0;
int zhishu(int m)//判断该数的因数是不是质数
{
for(int i=1;i<=m/2;i++)
{
if(m%i==0)
{return 0;
break;
}
}
if(i>m/2)
return 1;
}
void yinshu(int m)//求出该数所有的因数
{
for(int i=1;i<=m;i++)
{
if(m%i==0)
{
a[n]=i;
n++;
}
}
cout<<n<<endl;//输出因数的个数
}
void main()
{
int b[100],m,q=0,flag=1;
cout<<"请输入一个数";
cin>>m;
yinshu(m);
for(int i=0;i<n;i++)
{
cout<<a[i]<<endl;//输出所有的因数
if(zhishu(a[i])==1)
{
b[q]=a[i];
}
q++;
}
for(i=1;i<q-2;i++)
for(int j=i+1;j<q-2;j++)
{
if(b[i]*b[j]==m)
{
flag=1;
break;
}
else flag=0;
}
if(flag==1)
cout<<"这是一个“猫老大数”";
else
cout<<"这不是一个“猫老大数”";
}