1)从键盘输入一个正整数,判断是否是完数,若是完数,则输出“YES”,否则输出“NO”(所谓完数是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,如:28的真因子为1、2、4、7、14,且28=1+2+4+7+14,因此28是一个完数)。
#include<stdio.h>
int main()
{
int n;
int sum = 0;
printf("请输入一个正整数\n");
scanf("%d",&n);
for (int i = 1; i < n; i++)
{
if (n % i == 0)
{
sum += i;
}
}
if (sum == n)
printf("YES\n");
if (sum != n)
printf("NO\n");
return 0;
}
输出结果
2) 编程:计算如下公式的值,其中m从键盘输入。
例如,若m输入的值为5,则应输出:1.463611。
#include<stdio.h>
int main()
{
int i = 0;
double sum = 1.0;
int m;
printf("请输入m的值\n");
scanf("%d", &m);
for (i = 2; i <= m; i++)
{
sum += 1.0 / (i * i);//若想得到小数,则至少有一个浮点数
}
printf("%lf", sum);
return 0;
}
输出结果
3.找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。
#include<stdio.h>
#include<math.h>
int fun(int n)
{
int i = 0;
for (i = 2; i < sqrt(n); i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
int main()
{
int n=0;
int a, b, c, d=0;
for (n = 100; n <= 900; n++)
{
if (fun(n))
{
a = n / 100;
b = n / 10 % 10;
c = n % 10;
d = c * 100 + b * 10 + a;
if (fun(d))
{
printf("%8d", n);
}
}
}
return 0;
}
输出结果
4.编程输出上三角形式的九九乘法表。
#include<stdio.h>
int main()
{
int i = 0, j = 0;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= 9; j++)
{
if (j < i)
{
printf(" ");
}
else
printf("%8d", i * j);
}
printf("\n");
}
}
输出结果