如题所述
方法一:
#include<stdio.h>
int main(){
int i,j;
printf("请输入一个正整数。\n");
scanf("%d",&i);
if(i<2)
printf("小于2,请重新输入。\n");
elseif(i%2==0)
printf("%d不是一个素数。\n",i);
else{
for(j=2;j<=i/2;j++){
if(i%j==0){
printf("%d不是一个素数。\n",i);
break;
}
if(j>i/2){
printf("%d是一个素数。\n",i);
break;
}
}
}
}
方法二:
#include<stdio.h>
int main(){
int a=0;
int num=0;
scanf("%d",&num);
for(inti=2;i<num-1;i++){
if(num%i==0){
a++;
}
}
if(a==0){
printf("YES\n");
}else{
printf("NO\n");
}
}
方法三:
#include"stdio.h"
int main(){
printf("\t\t\t\t\thelloworld\n");
int a,i;
do{
printf("inputnumberjudgeprimenumber:\n");
scanf("%d",&a);
for(i=2;i<a;i++)
if(a%i==0)break;
if(i==a)
printf("%d是素数\n",a);
else
printf("%d不是素数\n",a);
}while(a!=0);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-06-16
解释如下:
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}
第2个回答 2019-11-13
解释如下:
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}
第3个回答 2020-02-22
解释如下:
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}
#include"stdio.h"
#include"math.h"
main()
{
int
i,k,m;
//定义三个整形变量
scanf("%d",&i);
//输入i的值
k=sqrt(i);
//把输入的i的值的平方根的值赋值给k
for(m=2;m<=k;m++)
//从2开始进入循环,判断从2到k之间的数是否能被i整除
if(i%m==0)
//如果能被2整除则用break跳出循环
break;
if(m>k)
//判断通过循环后的m的值是否比k大,如果比k大则i是素数
printf("%d是素数
",i);
else
//如果不是则i不是素数
printf("%d不是素数",i);
getch();
}
第4个回答 2005-11-18
最佳方案是用素数分布来处理,在处理大素数时尤其合理,用算术基本定理可能太慢了。如果知道素数分布相关知识,编出来还是很容易的,不然告诉你也是白搭。