Announcement

Collapse
No announcement yet.

Code C !! Nhập n xuất ra n số nguyên tố đầu tiên trở đi.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 11520035
    replied
    vô tình thấy cũng post lên một cách cho tham khảo
    Code:
    #include<stdio.h>
    #include<conio.h>
    
    bool primes(int n)
    {
    	if(n < 2) return false;
    	if(n == 2) return true;
    	for(int i = 2; i < n; i++)
    	if(n % i == 0) return false;
    	return true;
    }
    
    int main()
    {
    	int n, count;
    	printf("\nEnter number: \nn = ");
    	scanf("%d", &n);
    	count = 0;
    	int i = 0;
    	printf("\nn primes number: ");
    
    	while(count < n)
    	{
    		if(primes(i))
    		{
    			printf("\t%d", i);
    			count++;
    		}
    		i++;
    	}
    
    	getch();
    }

    Leave a comment:


  • 13520324
    replied
    dạ cho em hởi nếu bài này dùng đệ quy thì làm như thế nào ?

    Leave a comment:


  • 10520213
    replied
    Originally posted by 12520037 View Post

    Code:
    #include<stdio.h>
    #include<conio.h>
    int lsnt(int n)
    {
    	;
    	if(n<2) return 0;
    	if(n==2) return 1;
    	for(int i=2;(i*i)<=n;i++)
    	if(n%i==0) return 0;
    	return 1;
    }
    
    }
    bạn thử cái này xem

    Leave a comment:


  • 12520037
    replied
    như nè dùng C free thì chạy OK nhưng dùng VS thì báo lỗi này
    on6.cpp(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

    Code:
    #include<stdafx.h>
    #include<stdio.h>
    #include<conio.h>
    int lsnt(int n)
    {
    	int i=2;
    	if(n<2) return 0;
    	if(n==2) return 1;
    	for(;i*i<=n;i++)
    	if(n%i==0) return 0;
    	return 1;
    }
    main()
    {
    	int i,k=2,dem=0,n;
    	printf("nhap a   ");scanf("%d",&n);
    	while(dem<n)
    	{
    	    if(lsnt(k))
    		{
    			printf("%d\n",k);
    			dem++;
    		}	
    	  k++;
    	}
    }

    Leave a comment:


  • 10520211
    replied
    tham khảo cái này xem
    Code:
    #include "conio.h"
    #include "stdio.h"
    int ktsnt(int n)
    {
    	if(n<2) return 0;
    	for(int i=2; i<=n/2;i++)
    	{
    		if(n%i==0) return 0;
    	}
    	return 1;
    }
    void main()
    {
    	int n,k=0;
    	printf("nhap n=");
    	scanf("%d",&n);
    	for (int i=2;k<n;i++)
    	{
    		if(ktsnt(i))
    		{
    			k++;
    			printf("%d ",i);
    		}
    	}
    	getch();
    }

    Leave a comment:


  • 11520132
    replied
    Bài này bữa có trên vòng loại cuộc thi thuật toán.

    PHP Code:
    #include <stdio.h>
    int main()
    {
        
    long int n,i,j,k;
        
    n=500;// số số nguyên tố cần in (max 5 600k gì đó )
        
    long int m[n];
        for (
    i=3,k=0,m[0]=2;k<n;++i)
            for (
    j=0;;++j)
            {
                if (
    m[j]*m[j]>i)//số nguyên tố là số không chia hết cho snt < sqrt của nó.
                
    {
                    
    m[++k]=i;
                    
    printf("%10d",i);
                    break;
                }
                if (
    i%m[j]==0) break;//số nguyên tố là số không chia hết cho snt < sqrt của nó.
            
    }

    Leave a comment:


  • 12520333
    replied
    Originally posted by 11520009 View Post
    Trong 1 điều kiện if thì:
    Code:
    if(xzy)
    		return 1;
    	return 0;
    đồng nghĩa vs
    Code:
    if(xyz)
    		return 1;
    	else
    		return 0;
    viết như vậy khỏi phải viết lại else.....

    còn return là để trả về giá trị đúng kiểu trả về (int checknt() sẽ trả về kiểu int - bắt buộc phải return ).
    có hàm ko có kiểu trả về, ngược lại sẽ bắt buộc trả về...

    return 0; trả về giá trị false
    return 1; trả về giá trị true....
    vậy là cái return 0; là của if(i==n) chứ ko phải của int nguyento(int n) hả anh ???

    Leave a comment:


  • 12520333
    replied
    Originally posted by 11520009 View Post
    :unhappy:
    Code:
    #include "iostream"
    using namespace std;
    
    int checknt(int x)
    {
    	int k=0;
    	if(x<2) return 0;
    	else
    		for(int i=2;i<=sqrtf(x);i++)
    			if(x%i==0)
    				k++;
    	if(k==0)
    		return 1;
    	return 0;
    }
    
    void main()
    {
    	int n,a=0;
    	cout<<"Nhap n: ";cin>>n;
    	for(int i=2;a<n;++i)
    		if(checknt(i)==1)
    			{
    				a++;//điều kiện dừng
    				cout<<i<<" ";
    		}
    	system("pause");
    }
    cái này C++ mà anh... đang học C nên nhìn hơi trừu tượng @@!

    Leave a comment:


  • 11520009
    replied
    Trong 1 điều kiện if thì:
    Code:
    if(xzy)
    		return 1;
    	return 0;
    đồng nghĩa vs
    Code:
    if(xyz)
    		return 1;
    	else
    		return 0;
    viết như vậy khỏi phải viết lại else.....

    còn return là để trả về giá trị đúng kiểu trả về (int checknt() sẽ trả về kiểu int - bắt buộc phải return ).
    có hàm ko có kiểu trả về, ngược lại sẽ bắt buộc trả về...

    return 0; trả về giá trị false
    return 1; trả về giá trị true....
    Last edited by 11520009; 24-11-2012, 23:57.

    Leave a comment:


  • 11520009
    replied
    :unhappy:
    Code:
    #include "iostream"
    using namespace std;
    
    int checknt(int x)
    {
    	int k=0;
    	if(x<2) return 0;
    	else
    		for(int i=2;i<=sqrtf(x);i++)
    			if(x%i==0)
    				k++;
    	if(k==0)
    		return 1;
    	return 0;
    }
    
    void main()
    {
    	int n,a=0;
    	cout<<"Nhap n: ";cin>>n;
    	for(int i=2;a<n;++i)
    		if(checknt(i)==1)
    			{
    				a++;//điều kiện dừng
    				cout<<i<<" ";
    		}
    	system("pause");
    }

    Leave a comment:


  • 12520333
    replied
    Originally posted by 10520303 View Post
    Đây là code đầy đủ tự tối ưu code lại nhé...
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    int Ngto(int n)
    {
    	int i;
    	for(i=2;i<n;i++)
    	{
    		if(n%i==0)
    		{
    			break;
    		}
    	}
    	if(i==n)
    		return 1;
    	return 0;
    }
    
    void main()
    {
    	int n;
    	printf("\n n = ");scanf("%d",&n);
    	int dem = n;
    	for(int i=2;i<100;i++)
    	{
    		if(Ngto(i))
    		{
    			printf("%4d",i);
    			dem--;
    		}
    		if(dem==0)
    			break;
    	}
    	getch();
    }
    cho em hỏi cái chỗ return 1 và return 0 nó là như thế nào, em chưa hiểu rõ về return lắm.. may anh giai thich dùm em với ( hình như return 1 là khi lệnh đúng phải ko ạ) Thank !!

    Leave a comment:


  • 11520285
    replied
    Originally posted by 12520333 View Post
    ..............code của anh Thành Trung thì ngắn nhưng khó hỉu đoi chút (đang mò...)
    =)) gộp nên khó hiểu đó. code mấy sư huynh sử tỉ kia là ghi rời ra.:dreaming: code a.thành là i là số chạy kiểm tra số đó phải ko(SNT)! còn c là biến đếm

    Leave a comment:


  • 11520317
    replied
    Originally posted by 11520086 View Post
    t cũng làm y như Quý, khác 1 chỗ là while(count_SNT<n) , khỏi phải break, mệt
    Mình làm cho người khác hiểu nữa mà, làm cho rõ nghĩa. Cách của Duyệt xa xỉ quá

    Leave a comment:


  • 12520333
    replied
    Originally posted by 10520303 View Post
    Đây là code đầy đủ tự tối ưu code lại nhé...
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    int Ngto(int n)
    {
    	int i;
    	for(i=2;i<n;i++)
    	{
    		if(n%i==0)
    		{
    			break;
    		}
    	}
    	if(i==n)
    		return 1;
    	return 0;
    }
    
    void main()
    {
    	int n;
    	printf("\n n = ");scanf("%d",&n);
    	int dem = n;
    	for(int i=2;i<100;i++)
    	{
    		if(Ngto(i))
    		{
    			printf("%4d",i);
    			dem--;
    		}
    		if(dem==0)
    			break;
    	}
    	getch();
    }
    Cảm ơn mấy anh đã trợ giúp: bài này khá dễ hiểu dành cho gà như em đc và code của anh Thành Trung thì ngắn nhưng khó hỉu đoi chút (đang mò...)

    Leave a comment:


  • 11520086
    replied
    t cũng làm y như Quý, khác 1 chỗ là while(count_SNT<n) , khỏi phải break, mệt
    Last edited by 11520086; 24-11-2012, 16:47.

    Leave a comment:

LHQC

Collapse
Working...
X