1、最大公约数和最小公倍数
输入两个正整数a和b(0<a,b<1000000),求出其最大公约数和最小公倍数并输出。
#include<stdio.h>
int main()
{
int a,b,m,n,yue,bei;
scanf("%d%d",&a,&b);
m=a%b;
n=a*b;
while(m!=0)
{
a=b;
b=m;
m=a%b;
}
yue=b;
bei=n/yue;
printf("%d %d",yue,bei);
printf("\n");
return 0;
}
2、素数
从控制台输入整数n(n>=1),计算并输出从1到n之间(包括n)个位为1的所有素数,若没有符合要求的素数,则输出-1。
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k;
int n;
int count=0;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
int tag=0;
k=(int)sqrt(i);
for(j=2;j<=k;j++)
{
if(i%j==0)
{
tag=1;
break;
}
}
if(tag==0&&i%10==1)
{
printf("%d ",i);
count=1;
}
}
if(count==0)
printf("-1");
printf("\n");
return 0;
}
3、完全数
一个整数,如果其所有小于它本身的因子(包括1)之和正好等于该数,则称其为"完全数"。编写程序计算某一范围内的所有"完全数"。
#include<stdio.h>
int f(int a)
{
int b,c=0;
for(b=1;b<=a;b++)
{
if(a%b==0&&a!=b)
c=c+b;
}
return c;
}
int main()
{
int m,n,p,q,t=0;
scanf("%d %d",&m,&n);
for(p=m;p<=n;p++)
{
q=f(p);
if(p==q)
{
printf("%d ",p);
t=1;
}
}
if(t==0)
printf("No Answer\n");
return 0;
}