原题链接:[编程入门]自定义函数处理素数
解题思路:
素数指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
1.输入一个数number,若number为大于一的自然数,判断它是否为素数;
2.number为大于一的小数,不是素数;
3.number小于等于1,不是素数;
参考代码:
#include <stdio.h>
int main()
{
double number;
int i;
scanf( "%lf", &number );
if ( number > 1 && number == (int) number ) //大于1的自然数
{
for ( i = 2; i < number; i++ )
{
if ( (int) number % i == 0 )
{
printf( "not prime" );
break;
}
}
if ( i == number )
printf( "prime" );
}
if ( number>1&&(int) number != number ) //大于一的小数
printf( "not prime" );
if ( number <= 1 ) //小于等于一的数
printf( "not prime" );
return(0);
}0.0分
35 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
为什么是“答案错误50%”,求指导 # include<iostream> using namespace std; void prime(int n){ int flag=1; if(n<=1){ flag=0; cout<<"no prime"<<endl; } else{ for(int i=2;i<n;i++) if(n%i==0){ flag=0; cout<<"no prime"<<endl; break; } if(flag==1) cout<<"prime"<<endl; } } int main(){ int n; cin>>n; prime(n); return 0; }#include <stdio.h> void prime(int num); int main() { int num; int loop = 1; scanf("%d", &num); do { if (num <= 0) { scanf("%d", &num); } else { loop = 0; } } while (loop); prime(num); } void prime(int num) { int counter = 0; for (int i = 1; i <= num; i++) { if (num % i == 0) { counter++; } } if (counter == 1 || counter > 2) { printf("not prime"); } else { printf("prime"); } }#include<stdio.h> #include<math.h> #include<string.h> int isPrime(int a); int main() { int number; scanf("%d", &number); if (isPrime(number)) printf("prime"); else printf("not prime"); return 0; } int isPrime(int a) { int sqrt,ret=1; sqrt = pow(a, 0.5)/1+1; for (int i = 2; i <= sqrt; i++) { if (a%i == 0) { ret = 0; break; } } return ret; } 我这根本不需要区分1,1进去也是对的。#include<stdio.h> int main() { int a,i,b=1; scanf("%d",&a); if(a<=1) printf("no prime"); if(a>1) { for(i=2; i<a; i++) { if(a%i==0) { b=0; break; } } if(b==1) { printf("prime"); } else printf("no prime"); } return 0; } //哪里出错了吗#include<stdio.h> int main() { int a,i,c,sum=0; scanf("%d",&a); for(i=2;i<=a;i++) { c=a/i; if(a==c*i) { sum+=i; } } if(sum==a) printf("prime"); else printf("not prime"); return 0; }#include<stdio.h> int ss(int x) { int i; for (i = x / 2; x % i != 0; i--) { } return i == 1 ? 1 : 0; } int main() { int a,b; scanf_s("%d", &a); printf("%s",ss(a)==0 ? "not prime" : "prime"); return 0; }#include<stdio.h> int fab(int n) { printf("prime\n"); } int fab1(int n) { printf("not prime\n"); } int main() { int n; scanf("%d",&n); if (n % 2 == 1) fab(n); else fab1(n); return 0; }#include<stdio.h> int main() { int a,i=2; printf("请输入一个整数\n"); scanf("%d",&a); while(i<a) { if(a%i==0) { printf("not prime \n"); break; } i++; } while(a==i) { printf("prime \n"); break; } return 0; }