输入格式:
输入在一行中给出需要判断的数n.
输出格式:
如果n为真素数,则输出“yes”,否则输出“no”。
输入样例:
11
输出样例:
yes
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <stdio.h>
int main(int argc, char *argv[]) {
int math,d=0,b=0;
scanf("%d",&math);
int panduan(int math);
int panduan2(int math);
d=panduan(math);
b=panduan2(math);
if(d==1&&b==1) printf("yes");
if(d!=1||b!=1) printf("no");}
int panduan(int math){
int i=1,j,k,a=math,b,c,z,count=0;
if(math==1) return 0;
if(math==2) return 1;
if(math==3) return 1;
for(i=3;i<math;i++){
if(math%i==0) return 0;
else return 1;}}
int panduan2(math){
int a,b,c,d=0,e=0,f,g,h,i,j,k,l,a1,a2,a3,a4,a5,a6,a7,a8,a9,count=0;
a=math;
while(a!=0) {a/=10;count++;}
if(count==1) return 1;
if(count==2){
a1=math%10+math/10;
if(a1==2) return 1;
if(a1==3) return 1;
for(i=3;i<a1;i++){if(a1%i==0) return 0;else return 1;}}
if(count==3) {a2=math%10+math/100+(math/10)%10;
if(a2==3) return 0;
for(i=3;i<a2;i++){if(a2%i==0) return 0;else return 1;}}
if(count==4) {a3=math%10+math/1000+(math/100)%10+(math%100)/10;
if(a3==4) return 0;
for(i=3;i<a3;i++){if(a3%i==0) return 0;else return 1;}}}