发布网友 发布时间:2022-04-21 20:14
共2个回答
热心网友 时间:2023-05-08 12:49
基本思想:把m作为被除数,将2—INT()作为除数,如果都除不尽,m就是素数,否则就不是。
可用以下程序段实现:
voidmain()
{intm,i,k;
printf("pleaseinputanumber:\n");
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<k;i++)
if(m%i==0)break;
if(i>=k)
printf("该数是素数");
else
printf("该数不是素数");
}
将其写成一函数,若为素数返回1,不是则返回0
intprime(m%)
{inti,k;
k=sqrt(m);
for(i=2;i<k;i++)
if(m%i==0)return0;
return1;
}
扩展资料:
100->200之间的素数的个数,以及所有的素数
#include<stdio.h>
#include<math.h>
intmain()
{
inta,m,k,i;
a=0;
for(i=101;i<=200;i++)
{
for(k=2;k<i;k++)
if(i%k==0)break;
if(k>=i)
a++;
}
printf("%d\n",a);
for(i=101;i<=200;i++)
{
for(k=2;k<i;k++)
if(i%k==0)break;
if(k>=i)
a++;
if(k>=i)
printf("%d",i);
}
printf("\n");
return0;
}
热心网友 时间:2023-05-08 12:50
# include <stdio.h>
int main(void)
{
int primenumber;
int i;
printf("请输入一个数有计算机,判断它是否为素数:");
scanf("%d",&primenumber);
if (primenumber == 0 || primenumber == 1)
{
printf("the is not prime number\n");
}
else
{
for (i = 2; i < primenumber; i++)
{
if (primenumber % i == 0)
{
break;
}
}
if (i < primenumber)
{
printf("this is not prime number!\n");
}
else
{
printf("this is prime number!\n");
}
}
return 0;
}
扩展资料:
首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。
命题 1 对于B=36N+1 形数而言。
若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,
则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。
若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,
则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。
两式都无解,是素数。
参考资料来源;百度百科-质数