1. c语言中如何求素数
思路:所谓素数是指只能被1和自身整除的数叫作素数,判断素数就可以从2到该数减一依次判断能否整除该数,如果能则不是素数,否则就是素数。
参考代码:
#include<stdio.h>
int isp(int n)//判断是否是素数,是返回1,否则返回0
{
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1;
}
int main()
{
int a;
scanf("%d",&a);
if(isp(a))
printf("%d是素数\n",a);
else
printf("%d不是素数\n",a);
return 0;
}
/*
输出:
89
89是素数
*/
2. C语言判断素数的程序怎样写
DEV-CPP C 通过编译
#include<stdio.h>
#include<math.h>
int main(){
int n,i;
scanf("%d",&n);
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
puts("NO");
return 0;
}
}
puts("YES");
return 0;
}
3. 怎么写“求1~100之间的所有素数”项目计划书
素数是大于1的整数,除了它本身和1以外,不能被正整数所整除.也称作“质数”.
在欧几里得的《几何原本》中,给出了素数的定义为只能被单位量除尽的数。另外还给出了算术基本定理,即如果A是素数P、Q…的乘积,那么将A分解成素数乘积的方法是惟一的。在《几何原本》中,已经得出素数的个有选举权是无限的。
与欧几里得同时代的数学家埃拉托色尼首先给出了求素数的方法,现在人们称之为“埃拉托尼筛子”。他求素数的方法如下。
他首先从2开始,写出自然数:2,3,4,5,6,7,8,9…100,然后,把其中的一切合数划去,划掉合数的原则是,在这一列数中,第一个数2满足素数的定义,把它保留下来。随后把能被2整除的数都划去,因为它们都是合数。接着在数2后的没有被划去的第一个数是3,因为它只被1和它本身整除,所以它是一个合数,把它也划去。剩下没有被划去的第一个有选举权是5,它只能被这和它本身整除,所以它也是一个素数。如此连续不断地划下去,最后剩下的数都是素数。
为什么把这种方法叫做“厄拉多塞筛子”呢?因为厄拉多塞在求素数时,把自然数写在一块白蜡的木板上,并逐个在写着合数的位置上刺一个孔,这样白蜡板上被刺了很多的小孔,好像一个筛子。把所有的合数“筛掉”剩下的就都是素数。
用“厄拉多塞筛子”可得到100以内的25个素数:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97。
给了你算法,设计数据结构、画流程图该没什么问题吧?
以下地址里有现成的程序。
4. 编程中"输出第十个素数"怎么写
算法简单,直接从500到1循环,判断每个数是否为素数,如果是素数,输出,并累加,一直判断出10个素数,终止循环,输出累加总数。
例程:
#include<stdio.h>
int main(){
int prime;
int prime_pti[100];
int prime_z=0;
int i,n,p=0;
int a,b;
int step=0;
for(prime=i=1;i<=500;i++) /*找出500内的所有素数*/
{
for(n=2;(n*n)<=i;n++) /*判断一个数是否是素数*/
{
if(i%n==0)
{
prime=0;
break;
}
}
if(prime) /*是素数就存储在数组中*/
{
prime_pti[p]=i;
p++;
}
prime=1;
}
for(a=0;a<p-1;a++) /*从大到小排序素数数组*/
for(b=a+1;b<p;b++)
{
if(prime_pti[a]<prime_pti[b])
{
step=prime_pti[a];
prime_pti[a]=prime_pti[b];
prime_pti[b]=step;
}
}
if(p>9) /*判断素数个数是否达到10,是则输出,否则退出。*/
{
for(i=0;i<10;i++)
{
if(i<9)
printf("%d+",prime_pti[i]);
else
{
printf("%d=",prime_pti[i]);
for(n=0;n<10;n++)
prime_z+=prime_pti[n];
printf("%d\n",prime_z);
}
}
}
else
printf("Sorry!\n");
return 0;
}
5. 用C语言求100以内素数程序怎样写
#include <stdio.h>
void main()
{
int s=1;
for(int i=1;i<=100;i++)
{
s=1;
for(int j=2;j<i;j++)
{
if(i%j==0)
{
s=0;
}
}
if(s!=0)
{
printf("%d ",i);
}
}
printf("\n");
}
6. 请高手编写素数展示的程序
/*
**哥德巴赫猜想
*/
#include<stdio.h>
#include<stdlib.h>
int Judge_Prime(int number)//判断素数
{
int flag=0;
int num=0;
for(int i=2;i<number/2;i++){
if(number%i==0) {
flag=1;
}
}
if(flag==1) return 0;
else return 1;
}
int GeDe(int q,int n)
{
int m;
for(int i=q;i<n;i++){
if(i%2==0){
int flag=0;
for(int n=3;n<=i/2;n+=2){
if(Judge_Prime(i-n)){
flag=1;
}
}
if(flag==0) return 0;
}
else if(i>=9){
int flag=0;
int total;
for(int n=3;n<=9;n+=2){
total=i-n;
if(!Judge_Prime(total)){
for(int m=3;m<=total/2;m+=2){
if(Judge_Prime(total-m)){
flag=1;
}
}
}
}
if(flag==0) return 0;
}
}
return 1;
}
void main()
{
int n;
int q;
printf("输入最小值(>=6):");
scanf("%d",&n);
printf("输入最大值:");
scanf("%d",&q);
if(GeDe(q,n)) printf("哥德巴赫猜想在此范围成立。");
else printf("哥德巴赫猜想在此范围不成立。");
}