提交记录 #416
提交时间:2024-12-03 18:51:27
语言:c
状态:CompileError
编译情况:编译错误
code.c:85:5: error: redefinition of ‘isPrim’
85 | int isPrim(int x) {
| ^~~~~~
code.c:32:5: note: previous definition of ‘isPrim’ was here
32 | int isPrim(int x)
| ^~~~~~
code.c:94:5: error: redefinition of ‘main’
94 | int main() {
| ^~~~
code.c:41:5: note: previous definition of ‘main’ was here
41 | int main()
| ^~~~
固定测试点暂不可用
附加测试点暂不可用
51【大学】素数计数—用指针哦
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int * input(int n) {
// 申请存储n个整数的空间
int *p = (int *)malloc(n * sizeof(int));
if (p == NULL) {
printf("Memory allocation failed\n");
exit(1);
}
// 读入n个整数保存在该空间中
for (int i = 0; i < n; i++) {
scanf("%d", &p[i]);
}
return p;
}
int PrimCount(int *p, int n) {
int count = 0;
// 统计指针p所指空间中素数的数量
for (int i = 0; i < n; i++) {
if (isPrim(p[i])) {
count++;
}
}
return count;
}
int isPrim(int x) {
if (x == 2) return 1; // 是素数,返回1
if (x <= 1 || x % 2 == 0) return 0; // 不是素数,返回0
for (int i = 3; i <= sqrt(x); i += 2) {
if (x % i == 0) return 0; // 不是素数,返回0
}
return 1; // 是素数,返回1
}
int main() {
int n, count;
int *p;
scanf("%d", &n); // 接受整数数量n
p = input(n); // 调用函数输入n个整数
count = PrimCount(p, n); // 对素数进行计数
printf("PrimCount=%d\n", count);
// 释放动态分配的内存
free(p);
return 0;
}