输出几种常见的特殊整数

来源:互联网 发布:excel数据拆分 编辑:程序博客网 时间:2024/05/18 00:03

今天做练习遇到了几个题目都是求一些特殊整数的题目,所以选了几个比较常见的写下来:

1.求完全数

就是求一个数,它的因子之和等于它本身,比如 6 的因子是1 , 2, 3,而 1 + 2 + 3 = 6,所以6就是一个完全数。

程序如下:(输入1--1000之内的完全数)

#include <stdio.h>int main(){    int a;int i;int m;printf("There are following numbers smaller then 1000:\n");for(a = 2; a < 1000; a++){    for(m=0,i = 1; i <= a/2; i++){    if(a%i == 0){    m = m + i;}}if(m == a){    printf("%4d",a);}}return 0;} 


2.素数:
只能被1 和它本身整除的数;
程序如下:
#include <stdio.h>int main(){    int a;int i;printf("Please input the number:\n");scanf("%d",a);for(i = 2; i <= a/2; i++){if(a%i == 0){break;}}if(i > a/2){printf("yes!\n");}else{    printf("No!\n");    }    return 0;}

3。回文数:
求所有不超过256且其平方具有对称性的数(回文数)
#include <stdio.h>int main(){    int m[16];int n;int i;int t;int count = 0;long unsigned a;long unsigned k;printf("No.number it's square(palindrom)\n");for(n = 1; n < 256; n++){    k = 0;t = 1;a = n * n;for(i = 1; a != 0; i++){    m[i] = a % 10;a = a / 10;}for(; i > 1; i--){    k = k + m[i-1] * t;t = t * 10;}if(k == n*n){    printf(" %2d %10d %10d\n", ++count, n, n*n);}}return 0;} 


0 0
原创粉丝点击