任务描述
编写函数返回一个正整数的所有约数的个数。主函数输入若干整数,依次输出其约数个数,一个输出占一行,如果此数是素数,再输出:(Prime)。
输入样例:
100 101 1001
输出样例:
9
2 (Prime)
8
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
思路
-
在主函数中,使用 while 循环不断读入输入数据,直到读到文件末尾(EOF)为止。
-
定义一个函数 yueshu(int n),它的功能是计算正整数 n 的约数个数。
-
调用函数 yueshu(int n) 计算输入的正整数 n 的约数个数,存储在变量 t 中。
-
判断 t 的值是否为 2,如果是,说明 n 是素数,输出 "t (Prime)";否则,直接输出 t。
代码
#include<stdio.h>
// 计算正整数 n 的约数个数
int yueshu(int n)
{
int i,count=0; // 定义变量 i 和计数器 count
for(i=1;i<=n;i++) // 循环判断 1~n 中哪些数是 n 的约数
{
if(n%i==0) // 如果 i 是 n 的约数,则计数器加 1。
count++;
}
return count; // 返回约数个数
}
int main( )
{
int n,t; // 定义变量 n(输入数据)和 t(约数个数)
while(scanf("%d",&n)!=EOF) // 不断读入输入数据,直到读到文件末尾为止
{
t=yueshu(n); // 调用 yueshu 函数计算 n 的约数个数,返回结果存储在 t 中
if(t==2) // 判断 t 是否等于 2,如果是,说明 n 是素数
printf("%d (Prime)\n",t);
else // 否则,输出其约数个数
printf("%d\n",t);
}
}