6-1 打印1-100之间素数及其个数
分数 10
中等
作者 王跃萍
单位 东北石油大学
打印出1-100之间的全部素数及其个数,其中判断一个数是否为素数用函数实现。
函数接口定义:
int prime(int x)
其中x
是用户传入的参数,如果x
是素数则函数返回1,否则函数返回0。
裁判测试程序样例:
#include <stdio.h>
int prime(int x);
int main()
{
int i,k=0;
for(i=1;i<=100;i++)
if(prime(i)==1)
{printf("%4d",i);
k++;
if(k%10==0) printf("\n");
}
printf("\n%4d\n",k);
return 0;
}
/* 请在这里填写答案 */
输出样例:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
25
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
解题思路:
题目要求用函数实现判断一个数是否为素数,素数则为仅能被1和它本身整除的数,特别的,1不是素数。
因此须在代码中排除1,在循环中遍历从2到x-1是否能整除x,若能则不是素数,返回0,否则返回1。
代码实现:
int prime(int x){
if(x==1) return 0; //1不是素数,排除
for(int i=2;i<x;i++){
if(x%i==0) return 0; //能被1或x以外的数整除,不是素数
}
return 1;
}