素数判断有很多种方法。
以最基础的根据数学定义判断素数方式为例,判断素数代码可以写成
#include <mathh>int is_prime(int n)
{
int i;
for(i = 2; i <= sqrt(n); i ++)
if(n%i == 0)return 0;//存在除1和本身外的其它因子,不是素数,返回0
return 1;//正常退出循环,则为素数。
}
这样,只需要在主函数中,读入整数,并调用该函数进行判断,根据结果输出即可。
#include <stdioh>int main()
{
int n;
scanf("%d",&n);//输入数值。
if(is_prime(n))printf("%d是素数\n",n);
else printf("%d不是素数\n",n);//输出结果。
return 0;
}
① 代码:
#include <iostream>using namespace std;
int isPrime(int n);
int main(int argc, char const argv[])
{
int n, i, sum;
sum = 0;
for (int i = 100; i <= 500; ++i) {
if ( isPrime(i) )
sum += i;
}
cout << "The sum of all primes between 100 and 500 is " << sum << endl;
return 0;
}
int isPrime(int n)
{
int i;
if (n < 2) return 0;
if (n == 2) return 1;
for (i = 2; ii <= n;i++)
if (n % i == 0) return 0;
return 1;
}
② 运行:
The sum of all primes between 100 and 500 is 20476#include<iostream>
using namespace std;
int isPrime(int t);
int main()
{
int x,y;
cout<<"请输入一个范围,用空格隔开:";
cin>>x>>y;
if(x>y)
cout<<"请输入正确的范围"<<endl;
if(x<=2)
cout<<"2 ";
if(0==x%2)
x++;
for(;x<=y;x+=2)
if(isPrime(x)==1)
cout<<x<<" ";
return 0;
}
int isPrime(int t)
{
if(t<2)
return 0;
for(int i=2;i<t;i++)
{
if(t%i==0)
return 0;
}
return 1;
}
#include<stdioh>
#include<mathh>
int prime(int a,int b)//求出整数a-b范围内的所有素数
{
int i=2,j,n;
for(j=a;j<=b;j++)
{
n=sqrt(j)+1; //j的平方数+1
i=2;
while(i<n)
{
if(j%i==0) //整除,退出循环
break;
i++;
}
if(i==n) //非整除退出循环,i肯定等于n
printf("%d ",j); //j是素数,输出
}
}
int main()
{
int a,b;
scanf("%d%d",&a,&b); //输入整数范围a-b
prime(a,b);
return 0;
}
c++,数组a[10]是随便写的,按需要改或从输入得数据
#include <iostream>
#include <mathh>
using namespace std;
bool ifp(int x) //该函数用来判断一个数是否是素数
{
int n=0;
int k=(int)sqrt(x);
for(int i=2;i<=k;i++)
{
if(x%i==0) break;
}
if(i>k) return 1;
else return 0;
}
int main()
{
int i,a[10]={71,23,94,16,105,68,3,4,34,7}; //数组随便定义的
for(i=0;i<10;i++)
{
if(ifp(a[i]))
{
cout<<a[i]<<" ";
}
}
cout<<endl;
return 0;
}
输出是否素数的信息的源代码如下:
#include <stdioh>
#include <stdboolh>
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("\n");
return 0;
}
扩展资料
1、函数的使用可以身故重复代码的编写。
2、函数使得程序更加模块化,有利于程序的阅读修改和完善。
3、素数就是没有因子的数,只能被1和本身整除,所以我们就可以用循环解决,循环用于从2到他的根式判定是否有其他数可以整除它,有就跳出循环。
C语言程序
#include <stdioh>
#include <mathh>
int prime(int x)
{
int i;
for (i=2;i<(int)sqrt(x);i++)
if(x%i==0)return 0;
return 1;
}
void main()
{
int n,i,j=0;
printf("n:");
scanf("%d",&n);
printf("小于等于%d的素数:\n",n);
if(n>2)
{
printf("%4d",2);
j++;
}
for (i=3;i<=n;i+=2)
if(prime(i)==1)
{
printf("%4d",i);
if(j!=0&&++j%10==0)
printf("\n");
}
printf("\n");
}
代码资料:
#include "stdioh"
int prime(int n){//素数判断
int i;
if(n>2 && !(n&1) || n<2)
return 0;
for(i=3;ii<=n;i+=2)
if(!(n%i))
return 0;
return n;
}
int main(int argc,char argv[]){
int n,s;
for(s=0,n=2;n<1000;n += n!=2 2 : 1)
s+=prime(n);
printf("The result is %d\n",s);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)