用C语言写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。

作者&投稿:圣高 (若有异议请与网页底部的电邮联系)
写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息~

#include
int sushu(int);
main()
{
int a;
printf("输入一个整数:");
scanf("%d",&a);
if(sushu(a)==1)
printf("是素数");
else
printf("不是素数");

}
int sushu(int x)
{
int i;
for(i=2;i<x;i++)
{
if(x%i==0)
return 0;
}
return 1;
}

先建立一个初始的素数表,例如:100以内的素数数组,用来快速判断是否是素数对于超过100的素数,算法,用不大于根号n的素数,对n进行试除,如果都不能除尽,则为素数。
#include
#include
//判断是否为素数的函数
int isPrime(int n)
{
int i=2;
while(i<=(int)sqrt(n))
{
if(n%i == 0)
return 0; //不是素数,直接返回0
else
i++;
}
return 1;
}
int main()
{
int n;
printf("输入一个正整数: ");
scanf("%d",&n);
if(isPrime(n))
printf("%d is a prime number
",n);
else
printf("%d is not a 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 是大因子数。
参考资料来源:百度百科-质数

输出是否素数的信息的源代码如下:

#include <stdio.h>

#include <stdbool.h>

bool prime(int x){

if (2 > x ) {

return false;

}

for (int i = 2; i < x ; i++) {

if (0 == x % i ) {

return false;

}

}

return true;

}

int main(){

for (int i = 2; i < 100; i++) {

if (prime(i)) {

printf("%d ",i);

}

}

printf("
");

return 0;

}

扩展资料

1、函数的使用可以身故重复代码的编写。

2、函数使得程序更加模块化,有利于程序的阅读修改和完善。

3、素数就是没有因子的数,只能被1和本身整除,所以我们就可以用循环解决,循环用于从2到他的根式判定是否有其他数可以整除它,有就跳出循环。



1 根据数学定义,得到判断素数的函数。

2 主函数中输入整数。

3 调用函数判断

4 根据返回值,输出结果。

代码:

#include <stdio.h>
#include <math.h>

int is_prime(int n)
{
int i;
for(i = 2; i <= sqrt(n); i ++)
if(n%i == 0) return 0;
return 1;
}

int main()
{
int i;
scanf("%d",&i);
        if(is_prime(i))printf("%d是素数
", i);
        else printf("%d不是素数
", i);
return 0;
}


main()
{
int i,x=0;
clrscr();
printf("Please input a number(x>1):\n");
scanf("%d",&x);
while(x<2)
{
clrscr();
printf("ERROR!!!Please input again!\n");
printf("Please input a number(x>1):\n");
scanf("%d",&x);
}
for(i=2;i<x-1;i++)
{
if(x%i==0)
{
printf("The number is not a SUSU.");
i=1;
break;
}
}
if(i!=1)
{
printf("The number is a SUSU.");
}
getch();
}

判断素数的方法
M 他不能被0-M/2之间的数整除就是素数
程序就是循环相套

#include<stdio.h>
int
sushu(int);
main()
{
int
a;
printf("输入一个整数:");
scanf("%d",&a);
if(sushu(a)==1)
printf("是素数");
else
printf("不是素数");
}
int
sushu(int
x)
{
int
i;
for(i=2;i<x;i++)
{
if(x%i==0)
return
0;
}
return
1;
}

C语言作业:使用子函数,判断一个数是不是素数,如果不是,输出其素数因子...
答:isPrime(int x){ int i;if(x<=1)return 0;for(i=2;i<x;++i)if(x%i==0)return 0;return 1;} int main( ){ int n;scanf("%d",&n);if(n<=0){ printf("error");return 0;} if(isPrime(n))printf("没有因子,是素数");else{ printf("%d=",n);decompose(n);} } ...

c语言程序改错写一个判别素数的函数,在主函数输入一个整数,输出是否素 ...
答:i=2;i<=n;i++){ if(fun(i)==1)printf("%2d ",i);} return 0;} int fun(int n){ int i;for(i=2;i<=(n/2);i++)if(n%i==0)break;if(i>(n/2))return 1;} 这是一个输出0到一个指定正整数之间的所有素数的程序、、自己参考、大同小异、参考资料:、自己玩着写的 ...

怎么用c语言判断一个数是不是素数
答: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){ prin...

用C语言编写自定义函数prime(int x),判断x是否为素数。
答:} //判断一个整数(1位或多位)是否每一位都是素数 bool allPrime(int a){ if(prime(a%10)) //如果个位是素数 { a=a/10;return allPrime(a);} else return false;}// 打印出1-5000内满足题意的素数 void printPrime(){ int i;int a=0;for( i=11;i<5000;) // 1-9 不用再...

C语言编写一个程序判断一个数是否为素数?急求
答:1、首先打开编辑器软件,在里面新的C语言文件里引入头文件并输入主函数,在主函数中输入代码:2、然后写入判断素数的逻辑,这里先引入一个scanf函数,接受用户输入的数值存入变量,对接收的变量判断其是否为素数,判断的依据是如果能被2到n-1中的某个数整除就是素数,否则就不是。最后把判断的结果打印...

c语言编写函数判断素数
答:/判断是不是素数 include<stdio.h> int prime(int a);//函数声明 int main(){ int n,i;scanf("%d",&n);if(prime(n)==1) //return返回值1 printf("prime");else printf("not prime") ;} int prime(int a){ int i;for(i=2;i...

c语言问题 写一个判素数的函数,在主函数输入一个函数,输出是否素数信息...
答:include<stdio.h> void main(){ int i,j,x;printf("输入你要测试的数字:\n");scanf("%d",&x);j=1;for(i=2;i<x;i++)if(x%i==0){ j=0;i=x;} if(j==0)printf("这个数不是一个素数!\n\n");else printf("这个数是一个素数!\n\n");} ...

C语言编程 写一个判断素数的函数,在主函数输入一个整数,输出是否为素 ...
答:include<stdio.h> int isprime(int n){ int i;for (i=2;i<n;i++)if(n%i==0)return 0;return 1;} void main(){ int n;printf("请输入一个数:");scanf("%d",&n);if(isprime(n))printf("%d是素数\n");else printf("%di不是素数\n"); } ...

c语言:5. 编程判断输入的任意整数m是否为素数。(素数只能被1和它本身整...
答:include<stdio.h> include<math.h> void main(){ int m,i,k;scanf("%d",&m);//m为输入的一个数 k=sqrt(m); //k是m的根号取整 for (i=2;i<=k;i++)if (m%k==0) break;if (m>k) printf("%d 是一个素数\n",m);else printf("%d 不是一个素数\n",m);} ...

编写一个能判断一个整数是否是素数的函数,并用它求出3到100之间的所有...
答:include<stdio.h> include<math.h> int suShu(int n){ int k,i;k = (int)sqrt(n);for(i = 2; i <= k; i++){ if((n%i) == 0)break;} if(i > k)return 1;return 0;} int main(int argv,char *argc[]){ int i,j;for(i = 3, j = 0; i <= 100; i++){ i...