scanf(\ }
while(m < 2); //e1
flag = Fun(m); //3
if(flag) //1
printf(\ else
printf(\
return0;
} intFun(intm)//2
{ inti, flag = 1; //1
for(i = 2; i < m; i++) //1 { if(m % i == 0) //1
{ flag = 0; //1 break; } }
returnflag;//2 }
- ---------------------------------------------------------5 6.求1898
现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它“右肩”上的素数与“左肩”上的素数之差。请编程求出:第二行数中是否存在这样的若干个连续的整数,它们的和恰好是1898?假如存在的话,又有几种这样的情况? **输入格式要求:提示信息:\**输出格式要求:\程序运行示例如下:
There are follwing primes in first row : (1).101,......,1999 (2). 89,......,1987 (3). 53,......,1951 (4). 3,......,1901 答案:
#include
{ }
7.从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出\。例如,用户输入90时,程序输出90 = 2 * 3 * 3 * 5;用户输入17时,程序输出\prime number\。
输入提示信息:\输入格式:\输出格式:
是素数时输出\
}
printf(\); for (c = 329;c >= 0;c--)
for (b = c + 1;c < b;b++)
if (b < 330) { } else
break;
if ((a[b] - a[c]) == 1898) { } else
continue;
printf(\, d, a[c], a[b]); d++;
int c = 0, b = 0, d = 1; int i = 0, j = 0, k = 0; for (i = 3;i <= 2000;i++) {
for (j = 2;j < i;j++) { }
if (j == i) { } else
continue; a[k] = i; k++;
if (i%j == 0) else
continue; break;
否则输出用\,\运行示例1: Input m:90↙ 90 = 2 * 3 * 3 * 5 运行示例2: Input m:13↙ It is a prime number 答案:
#include
voidOutputPrimeFactor(intx); intmain() { intm;
printf(\ scanf(\ if(IsPrime(m)) {
printf(\ } else {
printf(\ OutputPrimeFactor(m); } return0; }
intIsPrime(intx) {
inti,flag=1;
intsquareRoot=sqrt(x); if(x<=1) { flag=0; }
for(i=2;i<=squareRoot&&flag;i++) {
if(x%i==0) { flag=0; } }
returnflag;
}
voidOutputPrimeFactor(intx) { inti;
for(i=2;i if(x%i==0) { printf(\ OutputPrimeFactor(x/i); return; } } printf(\ } ---------------------------7 8. 将任一整数转换为二进制形式。 **输入格式要求:\提示信息:\ **输出格式要求:\程序运行示例如下: Input number:876 number of decimal form:876 it's binary form: 00000000000000000000001101101100 答案: #include ---------------------------8 9. 求自然数n最近的素数k, k>n。 ***输入提示信息**:\***输入数据格式**:\***输出数据格式**:\ int a; char b[32]; printf(\); scanf(\, &a); printf(\, a); printf(\); printf(\, itoa(a, b, 2)); 示例 输入: 257 输出: Please input n:263 答案: #include int n, i = 1, k; printf(\ scanf(\ for (k = n + 1;i;k++) { for (i = 2;i < k;i++) if (k%i == 0) break; else continue; if (i == k) { printf(\ i = 0; break; } } } ---------------9 10. 如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。 注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6 = 1 + 2 + 3。 请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。 要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。 int IsPerfect(int x); **要求输入提示信息为: \**要求输入格式为: \**要求输出格式为 \\